node.js - 从 Twitter oAuth API 请求令牌时出现 215 错误
问题描述
我正在尝试在我的 NodeJS 应用程序中实现 Twitter 登录。
根据 Twitter 的文档,我需要通过 POST 请求将以下参数传递给该 url。 网址:
https://api.twitter.com/oauth/request_token
参数:
oauth_nonce=,
oauth_signature=,
oauth_callback="http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="currentTimestamp",
oauth_consumer_key=“myKEY”,
oauth_version="1.0"
我正在为oauth_nonce
参数传递一个随机字符串。我不清楚如何创建一个oauth_signature
?
每当我发出 POST 请求时,我都会不断收到 215 错误,因为我猜的oauth_nonce
值oauth_signature
不正确。
在 NodeJS 中发出请求时如何生成oauth_nonce
和值。oauth_signature
解决方案
这些参数需要在您的授权标头中传递:
OAuth oauth_nonce="K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw",
oauth_callback="http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1300228849",
oauth_consumer_key="OqEqJeafRSF11jBMStrZz",
oauth_signature="Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D",
oauth_version="1.0"
但在此之前,您需要获得一个签名,然后它将为您提供上述所有参数。在此处查看文档。
建议使用 3rd 方库,如passport,如果需要,它可以大大简化此过程。