因此,我天真地将端点路径切换到 1.1/ 以查看它在使用 gtm-oauth 库时是否可以正常工作,该库一直运行良好。
好像是开关坏了。我已经收到确认认证更加严格(https://dev.twitter.com/discussions/12322)和一些调试建议。显然新的 API 对当前的 gtm-oauth 来说太严格了。
问:我想知道是否有人针对新的 Twitter API 使用了 gtm-oauth?而且,如果是这样的话——你做了什么让它发挥作用?
我将继续调试,但与此同时,我想我会问一下,也许可以为自己节省一些时间和麻烦。
以下是我所做的,以确定我这边可能出了什么问题。
我仔细查看了我的身份验证标头,除了 oauth_nonce 和 oauth_signature(和时间戳)之外,我的应用程序和 OAuth 签名工具之间是一致的。
在我看来,要么是签名机制发生了变化,要么是随机数唯一性要求在 1.0 和 1.1 之间发生了变化。
我从服务中得到的错误是:
"错误的身份验证数据","code":215" for: https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=darthjulian&count=2
在请求标头中使用以下身份验证参数:
OAuth oauth_consumer_key="09ARKva0K7HMz1DW1GUg", oauth_token="185383-nxvJMkTAvYX14YRdBhEOfOUKYzcA3ZQzLqNVMMt4Nc", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_nonce="e4ad7f4753c4929", oauth_timestamp="1352098450", oauth_signature="hA9s%2B%2FnGRUc9OdUNqf5G4cQn5g0% 3D"
片刻之后,OAuth 签名工具告诉我我应该使用这样的东西:
Authorization: OAuth oauth_consumer_key="09ARKva0K7HMz1DW1GUg", oauth_nonce="3a2881b92c790e41cf6e211124f1e099", oauth_signature="OlN0h3vPdPih8F%2FQbEDQth5RVZQ%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1352098650", oauth_token="185383-nxvJMkTAvYX14YRdBhEOfOUKYzcA3ZQzLqNVMMt4Nc", oauth_version=" 1.0"
除了 oauth_timestamp 随机数和签名是唯一关闭的东西。而且,如果我理解正确,nonce 应该没问题,只要它可能在一段时间内是独一无二的。
似乎签名机制不同,我应该更改 GTM-OAuth 的签名方式?