Twitter API的OAuth配置-获取错误89“无效或过期的令牌”

问题描述

我有一个Node应用程序,它向Twitter的account/update_profile_image端点发出请求。

在此过程中,我需要使用OAuth 1.0a。

我使用了this guide on setting up OAuth with Node

这是我的代码

function setTwitterProfileImage(imageBase64) {
    var endpoint = `https://api.twitter.com/1.1/account/update_profile_image.json?image=${imageBase64}`
    var oauth = new OAuth.OAuth(
        'https://api.twitter.com/oauth/request_token','https://api.twitter.com/oauth/access_token',process.env.ACCESS_TOKEN,process.env.TOKEN_SECRET,'1.0A',null,'HMAC-SHA1'
    );
    oauth.get(
        endpoint,process.env.CONSUMER_KEY,process.env.CONSUMER_SECRET,function (error,data,response){
            if (error) console.error(error);
            data = JSON.parse(data);
            console.log(JSON.stringify(data,2));
    });
}

错误

{
  "errors": [
    {
      "code": 89,"message": "Invalid or expired token."
    }
  ]
}

当我在失眠症中使用完全相同的URL和凭据时,这是一个有效的请求并且可以正常工作。

我假设我对oauth的初始化存在问题,因为唯一的区别是Insomnia如何处理随机数和签名。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)