当我从Twitter获得访问令牌时,我得到如下内容:
oauth_token=14410002-F5Bi8hMpQbXamM8MBBw8zw2LYIBL4FEBvxLZfaSwX&oauth_token_secret=K8QNvDcC2f9qtGU8tfa75exwLZ2Sc1jeHrThnk6Co&user_id=14410002&screen_name=blueonion
什么是oauth_token_secret?这是用于签署受保护请求的内容,还是仍然使用的consumer_key。
答案 0 :(得分:15)
简短的回答是:oauth_token
和oauth_token_secret
都构成了用于签署请求的请求令牌。
以下是一些可能有用的资源:
这不是消费者密钥。消费者密钥仅用于在请求令牌绑定到用户时识别消费者(=调用Twitter的代码)。然后,请求令牌由公共部分和秘密部分组成,这些部分都用于签署请求,如第9节中的说明所述。
但您可能想要使用其中一个库并查看示例。
答案 1 :(得分:9)
这实际上是一个非常好的问题,因为twitter似乎打破了这个要求的oauth 1.0标准。我意外地发现,如果你从签名密钥中省略了oauth_token_secret,即
$signing_key = encode_rfc3986($consumer_secret).'&';
而不是
$signing_key = encode_rfc3986($consumer_secret).'&'.encode_rfc3986($oauth_token_secret);
请求访问令牌时,两者对twitter都是一样的。
在我的网站上我开发了twitter oauth,之后我开发了任何其他oauth 1.0服务提供商身份验证,我无法弄清楚为什么甚至需要oauth_token_secret。一旦我在雅虎和linkedin上尝试相同的代码,我有一个令人讨厌的冲击,因为相同的代码工作的Twitter没有在其他服务提供商工作(即我使用上面的第一个片段,当我应该使用第二个片段)