用于Android的Twitter Oauth适用于浏览器,但不适用于Twitter应用程序

时间:2012-10-18 21:11:38

标签: android twitter oauth callback twitter-oauth

您好我必须为我的应用做一个Twitter Oauth。 我用它完成了它:

CALLBACK_URL = “微博:// twitterTraficoCCS”

清单

<activity
        android:name=".TwitterLogin"
        android:launchMode="singleInstance" >
        <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="twitterTraficoCCS" android:scheme="twitter" />
        </intent-filter>
    </activity>

现在..在代码中

String authUrl = httpOauthprovider.retrieveRequestToken(httpOauthConsumer, mActivity.getResources().getString(R.string.TwitterCallBackUrl));
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));

使用:

httpOauthConsumer = new CommonsHttpOAuthConsumer(TwitterConsumerKey, TwitterConsumerSecret));
        httpOauthprovider = new DefaultOAuthProvider("http://twitter.com/oauth/request_token", "http://twitter.com/oauth/access_token", "http://twitter.com/oauth/authorize");

这项工作就像浏览器/ Chrome上的魅力一样,但当我选择TwitterApp形式的动作菜单时,它会转到推特应用程序,请求认证我的应用程序。我选择确定,它说,重定向...并且从不回电我的应用程序。

任何sugestions?

先谢谢。

编辑: 通过“Twitter应用程序不进行回调”我的意思是,它不会调用我的onNewIntent()

1 个答案:

答案 0 :(得分:0)

将活动的启动模式更改为清单中的singleTask。

android:launchMode="singleTask"

这对我有用。希望它有所帮助:)