2014-10-29 21 views
12

Tôi đang cố gắng sử dụng API Vải mới mà Twitter đang cung cấp để cho phép người dùng đăng nhập vào ứng dụng của tôi. Tôi đã làm theo hướng dẫn chính xác (ít nhất là tôi nghĩ rằng tôi có, có lẽ tôi đã thực hiện một số sai lầm) here sau khi thiết lập dự án của tôi với tất cả các bước cần thiết; bây giờ khi tôi nhấn nút đăng nhập và xác thực các nút cho lại một phản ứng thành công nhưng khi tôi đi để có được những Twitter phiên sau đó tôi nhận được một ngoại lệ mà trông giống nhưTwitter Vải Đăng nhập cho Android

Caused by: java.lang.IllegalStateException: Must start Twitter Kit with Fabric.with() first  

(một lần nữa, Tôi làm theo các hướng dẫn để một T đến thời điểm này, nhưng nếu bạn có thể nghĩ về bất cứ điều gì thì tôi sẵn lòng thử nó)

+0

kiểm tra liên kết sau: https://androidbeasts.wordpress.com/2015/07/22/twitter-fabric-integration/ – Aakash

Trả lời

14

SDK vải tách chức năng thành các mô-đun được gọi là Bộ dụng cụ. Bạn phải chỉ ra bộ dụng cụ nào bạn muốn sử dụng thông qua Fabric.with(). Việc này thường được thực hiện bằng cách mở rộng lớp Ứng dụng của Android.

package com.example.app; 
import android.app.Application; 

public class MyApplication extends Application { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 

     TwitterAuthConfig authConfig = 
        new TwitterAuthConfig("consumerKey", 
             "consumerSecret"); 

     Fabric.with(this, new Twitter(authConfig)); 

     // Example: multiple kits 
     // Fabric.with(this, new Twitter(authConfig), 
     //     new Crashlytics()); 
    } 
} 

Thông tin thêm: https://dev.twitter.com/twitter-kit/android/integrate

Xem ứng dụng mẫu chuẩn tại: https://github.com/twitterdev/cannonball-android

+0

Có hoạt động, cảm ơn rất nhiều! –

+0

Hi Luis, bạn có thể vui lòng giúp tôi với câu hỏi của tôi [ở đây] (http://stackoverflow.com/questions/27190313/making-rest-api-calls-from-an-android-app-using-twitterapiclient-class) ... cảm ơn trước –

+0

Cảm ơn nhiều! Tôi đã sử dụng tích hợp Fabric Fabric của Android Studio và hoàn toàn bỏ lỡ chút mã nhỏ này. Tôi cần phải thay đổi Khóa API và Bí mật của mình cho khách hàng và không biết nên tìm nó ở đâu. – LukeWaggoner

2

mới nhất Twitter Tích hợp với Android Studio

này bên dưới liên kết cung cấp mã mẫu mà bạn có thể sử dụng này mã để tích hợp twitter mới nhất sdk (Vải). nó cung cấp tất cả các tính năng chúng ta có thể dễ dàng tích hợp ít thời gian chăm

Twitter Sample code

Reference Code Plz check it

+1

Xin chào, Tôi đang gặp một số sự cố khi sử dụng bộ công cụ đăng nhập bằng Vải trên Twitter. Từ plugin của Android Studio Farbic, trên màn hình chọn bộ công cụ để cài đặt, tùy chọn là "Không xác định" thay vì "Cài đặt". Có ai khác gặp phải vấn đề này không? Tôi phải đề cập rằng với một dự án từ đầu này không xảy ra. –

4

lỗi trường hợp của tôi là: Phải bắt đầu với Fabric.with() trước khi gọi twitter bộ

Giải pháp:

Trước đó tôi đã sử dụng: Fabric.with (này, mới Crashlytic S()); & Fabric.with (điều này, Twitter mới (authConfig)); Cuối cùng không hoạt động.

Trước khi tích hợp Twitter mã của tôi là

- Fabric.with (this, new Crashlytics());

Sau khi tích hợp Twitter, tôi thay thế bằng

- Vải.với (điều này, Twitter mới (authConfig), Crashlytics mới());

Bây giờ làm việc như một nét duyên dáng,

3

Đây là cách tôi thực hiện Twitter đăng nhập với vải:

  1. chính Declare twitter và bí mật:

    private static final String TWITTER_KEY = "r5nPFPbcDrzoJM9bIBCqyfHPK"; 
    private static final String TWITTER_SECRET = "oJ8y2KPIySPpoBX3eCcqgcnmPGXLI94BR4g9ZztnApSmXQG9Ij "; 
    
    //Twitter Login Button 
    TwitterLoginButton twitterLoginButton; 
    
  2. onCreate() phương pháp:

    //Initializing TwitterAuthConfig, these two line will also added automatically while configuration we did 
    TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET); 
    Fabric.with(this, new Twitter(authConfig)); 
    
    setContentView(R.layout.activity_main); 
    
    //Initializing twitter login button 
    twitterLoginButton = (TwitterLoginButton) findViewById(R.id.twitterLogin); 
    
    //Adding callback to the button 
    twitterLoginButton.setCallback(new Callback<TwitterSession>() { 
        @Override 
        public void success(Result<TwitterSession> result) { 
         //If login succeeds passing the Calling the login method and passing Result object 
         login(result); 
        } 
    
        @Override 
        public void failure(TwitterException exception) { 
         //If failure occurs while login handle it here 
         Log.d("TwitterKit", "Login with Twitter failure", exception); 
        } 
    }); 
    

3.override onActivityResult():

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     //Adding the login result back to the button 
     twitterLoginButton.onActivityResult(requestCode, resultCode, data); 
    } 

4. Cuối cùng, đăng nhập():

public void login(Result<TwitterSession> result) { 

//Creating a twitter session with result's data 
     TwitterSession session = result.data; 

     //Getting the username from session 
     final String username = session.getUserName(); 

     //This code will fetch the profile image URL 
     //Getting the account service of the user logged in 
     Twitter.getApiClient(session).getAccountService() 
       .verifyCredentials(true, false, new Callback<User>() { 
        @Override 
        public void failure(TwitterException e) { 
         //If any error occurs handle it here 
        } 

        @Override 
        public void success(Result<User> userResult) { 
         //If it succeeds creating a User object from userResult.data 
         User user = userResult.data; 

         //Getting the profile image url 
         String profileImage = user.profileImageUrl.replace("_normal", ""); 

         Log.d("done","name-->"+username + "url-->"+profileImage); 
         // Toast.makeText(this,"name-->"+username + "url-->"+profileImage,Toast.LENGTH_LONG).show(); 

        } 
       }); 
    } 

Bạn có username và url profilepicture trong login() để sử dụng bất cứ nơi nào bạn muốn.

+0

Bạn có thể cho tôi biết làm cách nào để chuyển hướng người dùng đến màn hình đăng nhập twitter (nếu anh ấy chưa đăng nhập) của ứng dụng nếu ứng dụng được cài đặt hoặc trình duyệt không? –

Các vấn đề liên quan