2
我使用twitter4j获取用户令牌和秘密。 我在登录后应用程序重定向到我的应用程序时遇到问题。浏览器停留在前台,活动永远不会恢复。Twitter4j无法在登录后重定向回应用程序
这里是清单中的活性声明:
<activity
android:name=".TwitterActivity"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" />
</intent-filter>
</activity>
我已经把这些常量:
private static final String TWITTER_CALLBACK_URL = "myapp:///";
private static final String TWITTER_OAUTH_VERIFIER_URL = "oauth_verifier";
当登录按钮,用户点击:
ConfigurationBuilder configBuilder = new ConfigurationBuilder();
configBuilder.setOAuthConsumerKey(getString(R.string.twitter_consumer_key));
configBuilder.setOAuthConsumerSecret(getString(R.string.twitter_consumer_secret));
mTwitter = new TwitterFactory(configBuilder.build()).getInstance();
mProgressDialog.show();
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
mTwitterRequestToken = mTwitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
mProgressDialog.dismiss();
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(mTwitterRequestToken.getAuthenticationURL())));
}
}.execute();
在onResume
方法,我检查意图并检索令牌和秘密
Uri uri = getIntent().getData();
if (uri != null && uri.toString().startsWith(TWITTER_CALLBACK_URL)) {
String verifier = uri.getQueryParameter(TWITTER_OAUTH_VERIFIER_URL);
try {
mTwitterToken = mTwitter.getOAuthAccessToken(mTwitterRequestToken, verifier);
Toast.makeText(this, "token: " + mTwitterToken.getToken() + "\nSecret: " + mTwitterToken.getTokenSecret(), Toast.LENGTH_SHORT).show();
} catch (TwitterException e) {
e.printStackTrace();
}
}