gpt4 book ai didi

javascript - 如何在 NodeJS 中正确签署对 Twitter REST API v1.1 的 HTTP 请求?

转载 作者:太空宇宙 更新时间:2023-11-04 01:07:32 25 4
gpt4 key购买 nike

当我在 defined in my cloud/twitter.js file 内调用 twitter.request() ( Parse Cloud Code ) 时,我只收到错误 32“无法验证您的身份” 。我已完成 Twitter 在 "Creating a Signature" 中告诉我要做的所有事情和 "Authorizing a request"dev.twitter.com ,但我似乎无法找到如何做到这一点。

还有其他人有使用 Parse Cloud Code 访问 Twitter REST API v1.1 的经验吗?

P.S.您可以假设我在 Parse.User 中拥有用户的“访问 token ”和“ token secret ”作为 twitterTokentwitterTokenSecret,但我还提供了 ACCESS_TOKENTOKEN_SECRET 常量,因此您不必重新创建我的 Parse.User 来帮助我调试此问题.

最佳答案

结果证明这是一个简单的修复(谢天谢地)。问题在于我的签名(捂脸)后面有一个&。这是我必须更改的功能。

function getAuthSignature (user, request, oauth) {
var signingKey, body, signatureBase;

signingKey =
ENCODING_METHOD(CONSUMER_SECRET) + '&' + ENCODING_METHOD(TOKEN_SECRET);

body =
mapObject(oauth, ampersandEncoding)
.concat(mapObject(request.params, ampersandEncoding))
.sort();

// Remove trailing ampersand. (aka the fix)
body.push(body.pop().replace('&', ''));

signatureBase =
request.method.toUpperCase() + '&' +
ENCODING_METHOD(request.url) + '&' +
ENCODING_METHOD(body.join(''));

return crypto.createHmac('sha1', signingKey)
.update(signatureBase)
.digest('base64');
};

关于javascript - 如何在 NodeJS 中正确签署对 Twitter REST API v1.1 的 HTTP 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21654245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com