0

你好,我在 Twitter 上使用 auto。

我的代码运行良好,直到我将访问权限从“只读”更改为“读写”。

我的问题是,在网页上单击“登录”后,它没有返回到我的应用程序。

我读过它,我知道它是关于回调 URL 的。

这是我的代码:

static final String TWITTER_CALLBACK_URL = "oauth://t4jsample";


private void loginToTwitter() 
        {
            // Check if already logged in

                ConfigurationBuilder builder = new ConfigurationBuilder();
                builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
                builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
                Configuration configuration = builder.build();

                TwitterFactory factory = new TwitterFactory(configuration);
                twitter = factory.getInstance();

                try {
                    requestToken = twitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);

                    this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(requestToken.getAuthenticationURL())));

                } catch (TwitterException e) {

                    Toast.makeText(OpeningPage.this, "Something went wrong, please try again", Toast.LENGTH_SHORT).show();

                    e.printStackTrace();
                }
}

我的清单:

    <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:host="t4jsample"
            android:scheme="oauth" />
    </intent-filter>

我的推特设置页面:

在此处输入图像描述

感谢您的帮助

4

1 回答 1

0

在您的情况下,您需要在应用程序中显示,而不是在外部浏览器应用程序中显示,在创建自定义 Web 客户端后,在 Android 中使用 WebView:

private class CustomWebClient extends WebViewClient {
...

 @Override
 public boolean shouldOverrideUrlLoading(WebView view, String url) {

 } 

}

并设置为您的 WebView:

webView.setWebViewClient(new CustomWebClient());

在方法中shouldOverrideUrlLoading,您需要跟踪您的回调 url。

于 2013-10-16T10:23:10.627 回答