uri.getQueryParameter(“oauth_verifier”)始终为null

时间:2013-03-04 19:41:11

标签: java android oauth signpost

我是OAuth的新手,我正在开发一款需要它的Android应用,而且我正在使用路标库。

我相信我已经完成所有工作,直到我可以使用

获取令牌
String token = uri.getQueryParameter("oauth_token");

然而正确地返回了下一行

String verifier = uri.getQueryParameter("oauth_verifier");

返回null。我已经调试并检查了uri,它被初始化为

 Uri uri = this.getIntent().getData();

它似乎没有关键字“oauth_verifier”

当我尝试使用以下行时,验证程序为null会导致OAuthExpectationFailedException

provider.retrieveAccessToken(consumer, verifier);

任何人都可以帮我弄清楚为什么验证程序为null我使用的是回调而不是OOB。

我在其他问题中已经看到并在回复中指导了这类问题:

dat=myapp://twitter?oauth_token=tJpJHOOwoTGMwdvHyYbfX2tyHKOp0Y2kdRRZf3sM&
oauth_verifier=xc49oM8eVVmK46ZSLz2RMT2uqXn3SxrMxf5ZAMXaD2Y

我很相似但没有ouath_verifier键。

这是我发送有效的初始意图的地方,我得到了回复

        String clientKey = "xxxxxxx";
        String clientSecret = "yyyyyyyyy";

        CommonsHttpOAuthConsumer  consumer = new CommonsHttpOAuthConsumer(clientKey,clientSecret);


        provider = new CommonsHttpOAuthProvider(URL_Request_Token,
                URL_Access_Token, 
                URL_Authorize";
        provider.setOAuth10a(true);


        try {
            String authUrl = provider.retrieveRequestToken(consumer,CALLBACK_URI.toString());

            String token = consumer.getToken(); 
            String secret = consumer.getTokenSecret();

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

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

我在开发Twitter交互示例时遇到的一个问题是我忘了从twitter app控制台设置一个回调网址。

enter image description here

如果您不这样做,您的应用程序将不会被重定向,因此无法抓取验证者令牌。

促销模式开启

然而,如果你觉得特别勇敢,我最近一直在研究这个图书馆PostManLib,我正在寻找beta测试者。它应该使用引人注目的抄写库处理所有异步oauth交互。

促销模式关闭