【发布时间】:2014-10-07 16:55:15
【问题描述】:
好的,所以我正在创建一个 twitter 克隆,我现在唯一遇到的问题是回调 URL 让我回到应用程序,而是给了我一个找不到页面的错误。
我在stackoverflow中看到了一些类似的问题,并按照步骤操作。
-
我正在使用代码获取身份验证 URL:
public String beginAuthorization(){ try{ if(null==currentRequestToken){ currentRequestToken = twitter.getOAuthRequestToken(TWITTER_CALLBACK_URL); } return currentRequestToken.getAuthenticationURL(); }catch (TwitterException te){ te.printStackTrace(); } return null; } -
接下来我正在使用代码检索访问令牌:
public void setAccessToken(Uri uri) { if (uri != null && uri.toString().startsWith(TWITTER_CALLBACK_URL)) { String verifier = uri.getQueryParameter("oauth_token"); try { AccessToken accessToken = twitter.getOAuthAccessToken(app.currentRequestToken, verifier); //shared prefs SharedPreferences.Editor e = yambaSharedPrefs.edit(); e.putString(PREF_KEY_OAUTH_TOKEN, accessToken.getToken()); e.putString(PREF_KEY_OAUTH_SECRET, accessToken.getTokenSecret()); //store log in status e.putBoolean(PrefSharedTwitterLoggedIn, true); e.apply(); Intent intent = new Intent(this, StatusActivity.class); startActivity(intent); } catch (TwitterException e) { e.printStackTrace(); } } } -
我的回调 URL 如下所示:
public static final String OAUTH_CALLBACK_SCHEME = "twitter4j-MiYAMBA";public static final String OAUTH_CALLBACK_HOST = "callback";public static final String TWITTER_CALLBACK_URL = OAUTH_CALLBACK_SCHEME + "://" + OAUTH_CALLBACK_HOST; -
我还在意图过滤器中添加了回调 URL,例如:
数据 android:host="callback" android:scheme="twitter4j-MiYAMBA"
现在我不确定问题可能出在哪里。
这也是控制流经应用程序的方式:
StatusActivity 在应用程序运行时启动,它使用在名为 YAMBAapp 的 Android 应用程序类中定义的函数 isAuthorised() 检查是否设置了 AccessToken,如果已定义,则开始设置布局,即正在使按钮和东西可见,否则它将控制传递给函数 beginAuthorization(),该函数启动一个名为 AuthorizationActivity 的 Activity,它获取 Authentication URL 并将其传递给 WebView,所有这些都在函数 onResume 中完成,在这个函数中我调用另一个函数 setAccessToken 并传递具有数据的“uri”:
uri = getIntent().getData();
setAccessToken(uri);
我已经粘贴了上面 setAccessToken 的代码。 同样在清单中,我在“AuthorizationActivity”的意图过滤器中定义了“数据”项,而不是“StatusActivity”,尽管它没有任何效果。
请帮忙,我现在真的被困了几天:)
【问题讨论】:
标签: android twitter callback twitter4j