相关疑难解决方法(0)

Android OAuth:retrieveAccessToken()上的异常

我正在为我的Android应用设置OAuth.为了测试它我执行了以下操作:在我的项目中添加了signpost-core-1.2.1.1.jar和signpost-commonshttp4-1.2.1.1.jar,添加了变量"CommonsHttpOAuthConsumer consumer"和"CommonsHttpOAuthProvider provider"并在执行时执行以下操作单击按钮:

consumer = new CommonsHttpOAuthConsumer("xxx", "yyy");
provider = new CommonsHttpOAuthProvider("https://api.twitter.com/oauth/request_token", 
                    "https://api.twitter.com/oauth/access_token", 
                    "https://api.twitter.com/oauth/authorize");

oauthUrl = provider.retrieveRequestToken(consumer, "myapp://twitterOauth");
persistOAuthData();
this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(oauthUrl)));
Run Code Online (Sandbox Code Playgroud)

persistOAuthData()执行以下操作:

protected void persistOAuthData()
{
    try
    {
        FileOutputStream providerFOS = this.openFileOutput("provider.dat", MODE_PRIVATE);
        ObjectOutputStream providerOOS = new ObjectOutputStream(providerFOS);
        providerOOS.writeObject(this.provider);
        providerOOS.close();

        FileOutputStream consumerFOS = this.openFileOutput("consumer.dat", MODE_PRIVATE);
        ObjectOutputStream consumerOOS = new ObjectOutputStream(consumerFOS);
        consumerOOS.writeObject(this.consumer);
        consumerOOS.close();
    }
    catch (Exception e) { }
}
Run Code Online (Sandbox Code Playgroud)

所以,消费者和供应商正在打开浏览器,如之前描述保存在这里.

在onResume()方法中,我加载提供者和消费者数据并执行以下操作:

    Uri uri = this.getIntent().getData();
    if (uri != null && uri.getScheme().equals("myapp") && uri.getHost().equals("twitterOauth"))
    {
        verifier = uri.getQueryParameter(oauth.signpost.OAuth.OAUTH_VERIFIER); …
Run Code Online (Sandbox Code Playgroud)

twitter android oauth signpost

8
推荐指数
1
解决办法
8547
查看次数

标签 统计

android ×1

oauth ×1

signpost ×1

twitter ×1