当我从Android应用程序中使用Twitter作曲家撰写推文时,出现此400错误。
Twitter SDK的身份验证:
TwitterConfig config = new TwitterConfig.Builder(this)
.logger(new DefaultLogger(Log.DEBUG))
.twitterAuthConfig(new TwitterAuthConfig(getResources().getString(R.string.twitter_api_key), getResources().getString(R.string.twitter_api_secret)))
.debug(true)
.build();
Twitter.initialize(config);
twitterAuthClient = new TwitterAuthClient();
TwitterSession twitterSession = TwitterCore.getInstance().getSessionManager().getActiveSession();
if (twitterSession == null) {
twitterAuthClient.authorize(this, new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
TwitterSession twitterSession = result.data;
shareOnTwitter(twitterSession);
}
@Override
public void failure(TwitterException e) {
showToast("Failed to authenticate user " + e.getMessage());
}
});
} else {
shareOnTwitter(twitterSession);
}
使用TweetComposer共享:
private void shareOnTwitter(TwitterSession twitterSession) {
Intent intent = new ComposerActivity.Builder(MyShareActivity.this)
.session(twitterSession)
.image(Uri.fromFile(imageFile))
.text("Tweet Message")
.hashtags("#MyApp")
.createIntent();
startActivityForResult(intent, SHARE_ON_TWITTER);
}
这是我有时会收到的错误。有时它会按预期工作。
E/TweetUploadService: Post Tweet failed
com.twitter.sdk.android.core.TwitterApiException: HTTP request failed, Status: 400
at com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:70)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7397)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
有人可以帮我吗?
尝试将您在Twitter开发人员站点中使用的应用程序中的回调URL添加到此。
twittersdk://