簡體   English   中英

如何在Android SDK中使用Twitter Api獲取用戶對象?

[英]How to get User Object using Twitter Api in Android SDK?

我正在創建一個Android應用。 我正在Android中使用Twitter集成。

我的需要
我想從Twitter訪問訪問此處的用戶對象https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/user-object

我的工作
我使用Twitter成功實現了Login。

這是我的主要活動代碼::

public class MainActivity extends AppCompatActivity {

    TwitterLoginButton loginButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        TwitterConfig config = new TwitterConfig.Builder(this)
                .logger(new DefaultLogger(Log.DEBUG))
                .twitterAuthConfig(new TwitterAuthConfig(getString(R.string.twitter_consumer_key), getString(R.string.twitter_consumer_secret)))
                .debug(true)
                .build();
        Twitter.initialize(config);

        setContentView(R.layout.activity_main);

        loginButton = (TwitterLoginButton) findViewById(R.id.login_button);

        loginButton.setCallback(new Callback<TwitterSession>() {
            @Override
            public void success(Result<TwitterSession> result) {
                // Do something with result, which provides a TwitterSession for making API calls

                TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession();
                TwitterAuthToken authToken = session.getAuthToken();
                String token = authToken.token;
                String secret = authToken.secret;

                Intent intent =new Intent(getApplicationContext(), ProfilePage.class);
                intent.putExtra("token",token);
                startActivity(intent);






            }

            @Override
            public void failure(TwitterException exception) {
                // Do something on failure
            }
        });

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        // Pass the activity result to the login button.
        loginButton.onActivityResult(requestCode, resultCode, data);
    }
   }

我的問題:
現在,我要訪問Twitter Api的用戶對象。 我不知道 請說明如何調用和獲取對象。

可以通過Retrofit使用API​​調用來獲取用戶對象。 如果您已經包含Twitter Kit,則不必在項目中明確包含Retrofit。

  1. 使用twitter-kit中提供的新OAuth1aInterceptor創建Retrofit對象。

      retrofit = new Retrofit.Builder() .baseUrl("https://api.twitter.com/1.1/") .addConverterFactory(GsonConverterFactory.create()) // Twitter interceptor .client(new OkHttpClient.Builder() .addInterceptor(new OAuth1aInterceptor(/*twitter-session*/, /*twitter-auth-config*/)) .build()) .build(); 
  2. 照常為Retrofit Client創建一個Interface

      import com.twitter.sdk.android.core.models.User; import retrofit2.Call; import retrofit2.http.GET; import retrofit2.http.Query; public interface ApiInterface { @GET("users/show.json") Call<User> getUserDetails(@Query("screen_name") String screenName); } 
  3. 調用ApiInterface函數getUserDetails()

      ApiInterface apiInterface = retrofit.create(ApiInterface.class); Call<User> call = apiInterface.getUserDetails(/*screen-name*/); call.enqueue(new Callback<User>() { @Override public void onResponse(Call<User> call, Response<User> response) { } @Override public void onFailure(Call<User> call, Throwable t) { } }); 

twitter-session:可以從TwitterCore.getInstance().getSessionManager().getActiveSession()

twitter-auth-config:可以從TwitterCore.getInstance().getAuthConfig()

screen-name:可以從當前活動會話/*session*/.getUserName()獲取screen-nametwitter-handle登錄用戶的twitter-handle /*session*/.getUserName()

〜Twitter API參考索引https://developer.twitter.com/en/docs/api-reference-index

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM