1

我正在尝试生成 Oauth 签名,以便从我的 android 应用程序对 flickr.com 中的用户进行身份验证。

根据 flickr.com 上的文章,我必须发送签名请求才能获得签名。flickr.com 指南页面的超链接是:

http://www.flickr.com/services/api/auth.oauth.html#request_token

根据帖子,我必须向 flickr 服务器发送这样的请求才能接收签名密钥:

http://www.flickr.com/services/oauth/request_token
?oauth_nonce=89601180
&oauth_timestamp=1305583298
&oauth_consumer_key=653e7a6ecc1d528c516cc8f92cf98611
&oauth_signature_method=HMAC-SHA1
&oauth_version=1.0
&oauth_callback=http%3A%2F%2Fwww.example.com

我已经从我的应用程序以上述格式发送了一个请求,但我收到的只是一个错误,说oauth_problem=parameter_absent&oauth_parameter_absent=oauth_signature

我的请求代码是:

HttpGet get = new HttpGet("http://www.flickr.com/services/oauth/request_token?oauth_nonce="+nonce+"&oauth_timestamp="+ts+"&oauth_consumer_key=****&oauth_signature_method=HMAC-SHA1&oauth_version=1.0");

实际上的问题是,我请求签名的 url 以错误的方式响应。它应该在哪里返回签名,它要求签名。

4

1 回答 1

1

签名步骤是没有请求。您将到目前为止的 URI 转换为文档中所见的基本字符串(URL 对其部分进行编码等)。您使用 HMAC-SHA1 算法巫婆需要 2 个参数keydata. 使用基本字符串作为datakey

是 Consumer Secret 和 Token Secret 的连接值,用“&”分隔。

然后将您从算法(签名)返回的值附加到您的 URI

&oauth_signature={ALGORITHM_OUTPUT}

然后,您可以使用这个新的 URI 请求令牌。

如果您认为这工作量太大,请查看一些 Java OAuth 库,例如scribe-java

于 2012-09-20T14:54:21.453 回答