2017-08-09 86 views
1

你能解决这个问题吗?在android :: com.twitter.sdk.android.core.TwitterApiException中的Twitter问题:HTTP请求失败,状态:400

这里的问题:

的Twitter:无法获取请求令牌 com.twitter.sdk.android.core.TwitterApiException:HTTP请求失败,状态:400 在com.twitter.sdk。 android.core.Callback.onResponse(Callback.java:42) 在retrofit2.ExecutorCallAdapterFactory $ ExecutorCallbackCall $ 1 $ 1.run(ExecutorCallAdapterFactory.java:68) 在android.os.Handler.handleCallback(Handler.java:815)在 android.os.Handler.dispatchMessage(Handler.java:104) 在java.lang.reflect.Method.invoke(Native Method) 上的android.app.ActivityThread.main(ActivityThread.java:5643) 。 lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:960) at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:755)

的Twitter:授权与错完成 com.twitter.sdk.android.core.TwitterAuthException:无法在com.twitter.sdk.android.core.identity.OAuthCon获得请求令牌 troller $ 1.failure(OAuthController.java:94) at com.twitter.sdk.android.core.internal.oauth.OAuth1aService $ 1.failure(OAuth1aService.java:191) at com.twitter.sdk.android.core。 Callback.onResponse(Callback.java:42) at retrofit2.ExecutorCallAdapterFactory $ ExecutorCallbackCall $ 1 $ 1.run(ExecutorCallAdapterFactory.java:68) at android.os.Handler.handleCallback(Handler.java:815) at android.os。 Handler.dispatchMessage(Handler.java:104) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5643) at java.lang.reflect。 Method.invoke(Native Method) 在java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:960) at com.android.internal.os.ZygoteInit 。主要(ZygoteInit.java:755)

这里是我的代码:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    TwitterConfig config = new TwitterConfig.Builder(this) 
      .logger(new DefaultLogger(Log.DEBUG)) 
      .twitterAuthConfig(new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET)) 
      .debug(true) 
      .build(); 
    Twitter.initialize(config); 
    setContentView(R.layout.layout_list); 

    nameit = (TextView) findViewById(R.id.nameit); 
    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 
      try { 
       TwitterSession session = TwitterCore.getInstance().getSessionManager().getActiveSession(); 
       TwitterAuthToken authToken = session.getAuthToken(); 
       String token = authToken.token; 
       String secret = authToken.secret; 
       TwitterSession session1 = result.data; 
       String name = session1.getUserName(); 
       nameit.setText("Welcome " + name); 
       Log.e("DATTTA", session.getUserId() + ""); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

     @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); 

    loginButton.onActivityResult(requestCode, resultCode, data); 
} 

对不起,我英文不好,并在此先感谢。

回答

2

我有同样的问题,我通过以下步骤解决它。

转到Twitter的应用程序管理 单击“应用”上,您目前正在使用 点击“设置”选项卡上

1)回调网址:插入任何有效的URL像 http://www.google.com 回调网址是用于在您的设备中未安装Twitter应用时在浏览器上重定向您。

2)启用回拨锁定(建议使回调锁定,以确保应用程序无法覆盖回调URL):确认没有选中

3)无需初始化你的Twitter SDK应用程序中的类,而不是如下初始化它:

private void init(){ 

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

} 

谢谢..

相关问题