我尝试使用OAuth从网站获取访问令牌和密码。请求令牌和请求密钥的交换正常,但是当获得访问令牌时,我收到错误"Invalid signature. Expected signature base string."
之前有没有人看过这个错误或者知道可能出现什么问题?这是我要回来的数据(在urldecode
之后):
Invalid signature. Expected signature base string: POST
https://www.readability.com/api/rest/v1/oauth/access_token
oauth_consumer_key=my_consumer_key
oauth_nonce=d9aff6a0011a633253c5ff9613c6833d79d52cbe
oauth_signature_method=HMAC-SHA1
oauth_timestamp=1311186899
oauth_token=C8GF7D6ytPzQKdZVpy
oauth_verifier=ncUV4tJSrS
oauth_version=1.0
signature=7jUuk6fsEL8XNYxVWcsfGXEreK0%3D
答案 0 :(得分:2)
你可以看看here,有人问过一周前。回复:
完全正确地获取OAuth签名内容总是一件巨大的痛苦。您应该尽力确保库生成的基本字符串就像服务器所期望的那样。一旦这是真的,你可以搞砸的唯一方法是使用错误的密钥进行hmac。
答案 1 :(得分:1)
正如@genesis描述的那样,获得正确的签名密钥非常痛苦,但是有相关的文档,可以在此链接http://oauth.net/core/1.0/#encoding_parameters上看到。
拇指规则是指使用HMAC-SHA1,
答案 2 :(得分:0)
由于某些原因我无法对答案发表评论,但要在上面的答案评论中回答你的问题,你可以使用Oauth游乐场来查看google想要你的基本字符串的样子。 http://googlecodesamples.com/oauth_playground/index.php
答案 3 :(得分:0)
我知道这真的很老了,这可能没有丝毫帮助,但我今天得到了一些东西,而rawurlencode()
而不是urlencode()
为我修复了它。
答案 4 :(得分:-1)
我最近在搜索谷歌后遇到了一个问题1.0我找到了一个由某人创建的网络服务,该服务为oauth生成签名。它对我有用。链接是here。看看:)