如何在用户成功授权我的Twitter应用程序后从回调中获取信息?

时间:2012-03-22 11:47:10

标签: android android-intent

我成功地让用户通过OAuth再次授权我的应用推特。回调也有效,但问题是此回调返回到恢复活动的数据为空。有人知道怎么做吗?

这是我正在执行以启动身份验证的代码:

consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
provider = new DefaultOAuthProvider("https://api.twitter.com/oauth/request_token", 
                "https://api.twitter.com/oauth/access_token", 
                "https://api.twitter.com/oauth/authorize");
String authUrl = provider.retrieveRequestToken(consumer,CALLBACK_URL);
Toast.makeText(this, "Please authorize this app!", Toast.LENGTH_LONG).show();
setConsumerProvider();

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));

这是我正在使用的清单:

<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

<application
    ...    

    <activity android:name=".AuthActivity"  android:configChanges="orientation"
        android:label="Comparte en redes sociales" android:launchMode="singleTask">
        <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="callback" />
        </intent-filter>
    </activity>
</application>

这是AuthActivity的恢复代码:

protected void onResume() 
{
    super.onResume();
    System.out.println("RESUMING!!");
    if (this.getIntent()!=null && this.getIntent().getData()!=null)
    {

    }
}

这里this.getIntent().getData()为空,一直在尝试其他选项而没有运气。我需要数据来提取uri。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

好吧,在发布问题后我发现了问题。 launchMode="singleTask"正在重新创建活动,为了获得uri,我应该将其放入onNewIntent而不是onResume。现在数据已经准备就绪了:)。很抱歉给您带来不便。