Twitter请求令牌OAuth 401错误

Twitter请求令牌OAuth 401错误,twitter,oauth,Twitter,Oauth,尝试使用OAuth添加twitter登录时,第一步请求令牌是一场噩梦,这将一如既往地导致401错误 我使用twitter的Test OAuth工具来比较我的scala服务器发送的http请求。Curl请求有效,而我的服务器请求失败。将它们粘贴到下面进行比较。 卷曲请求 curl --request 'POST' 'https://api.twitter.com/oauth/request_token' --data 'oauth_callback=http%3A%2F%2F0.0.0.0%3A8

尝试使用OAuth添加twitter登录时,第一步请求令牌是一场噩梦,这将一如既往地导致401错误

我使用twitter的Test OAuth工具来比较我的scala服务器发送的http请求。
Curl请求有效,而我的服务器请求失败。将它们粘贴到下面进行比较。

卷曲请求

curl --request 'POST' 'https://api.twitter.com/oauth/request_token' --data 'oauth_callback=http%3A%2F%2F0.0.0.0%3A8081%2Fweb' --header 'Authorization: OAuth oauth_consumer_key="wRflKWWomJ9jKeK8wbTk0Jck3", oauth_nonce="46ef029600fcc2a6cbe068eb9711401c", oauth_signature="3ptB%2B6%2Fv9QYGgyQjO9DhuD7pmzA%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1422879905", oauth_version="1.0"' --verbose
HttpRequest(POST,https://api.twitter.com/oauth/request_token,List(Authorization: OAuth oauth_consumer_key="wRflKWWomJ9jKeK8wbTk0Jck3", oauth_nonce="70449464359328", oauth_signature="yEni23tuzEveIMtDm7%2F8N2anU%2FM%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1422879900", oauth_version="1.0"),HttpEntity(application/x-www-form-urlencoded,oauth_callback=http%3A%2F%2F0.0.0.0%3A8081%2Fweb),HTTP/1.1)
Scala服务器请求

curl --request 'POST' 'https://api.twitter.com/oauth/request_token' --data 'oauth_callback=http%3A%2F%2F0.0.0.0%3A8081%2Fweb' --header 'Authorization: OAuth oauth_consumer_key="wRflKWWomJ9jKeK8wbTk0Jck3", oauth_nonce="46ef029600fcc2a6cbe068eb9711401c", oauth_signature="3ptB%2B6%2Fv9QYGgyQjO9DhuD7pmzA%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1422879905", oauth_version="1.0"' --verbose
HttpRequest(POST,https://api.twitter.com/oauth/request_token,List(Authorization: OAuth oauth_consumer_key="wRflKWWomJ9jKeK8wbTk0Jck3", oauth_nonce="70449464359328", oauth_signature="yEni23tuzEveIMtDm7%2F8N2anU%2FM%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1422879900", oauth_version="1.0"),HttpEntity(application/x-www-form-urlencoded,oauth_callback=http%3A%2F%2F0.0.0.0%3A8081%2Fweb),HTTP/1.1)
我尝试过的事情:

  • 确保时间戳在5分钟内
  • 确保“允许此操作 用于使用Twitter登录的应用程序已在Twitter中设置 设置
  • 已设置回调url-(甚至已尝试) 本地主机的代理名称(通过更改ip表)
  • 尝试使用生成请求令牌
  • 使用自定义OAuth签名请求,主要使用

对于许多人来说,401 twitter请求令牌似乎是一个反复出现的主题,由于各种失败点而变得复杂。非常感谢您的帮助。

对于其他面临此问题的人,我列出了一些您可以从中受益的事情

经过痛苦的排列和组合尝试,
oauth_令牌
必须是签名的一部分(即使其值为 空字符串)

我不确定是否在任何地方提到过这一点,尤其具有讽刺意味的是,在使用Twitter的OAuth测试工具时,您必须删除访问令牌和机密(为了使Curl命令正常工作,这需要花费大量时间来弄清楚)

  • 验证您的基本字符串很好-

  • 正在验证您的签名过程是否正确-

另一种可能的情况 在我的Twitter客户端应用程序设置屏幕中,我设置了一个选项“启用回调锁定(建议启用回调锁定以确保应用程序无法覆盖回调url)”,这导致我在尝试获取请求令牌时出现401个未经授权的错误