在 Javascript 中实施 Twitter API 仅应用程序身份验证

Implementing Twitter API application-only authentication in Javascript

我正在尝试创建一个简单的 Web 应用程序,它可以导出您关注的人的列表 ("friends")。我正在使用 node.js 和 twitter package. I want to first use my Consumer Key and Consumer Secret to get a Bearer Token as shown here。然后我想使用 Consumer SecretConsumer Key 和新创建的 Bearer Token 进行身份验证推特。

我的问题是我正在使用异步函数 request.post 获取我的 Bearer Token,但我不知道如何将令牌传递给我用来通过 Twitter 进行身份验证的函数。它是异步的,所以我不能只做(伪代码)

function getBearerToken() { return request.post(bearerTokenParameters) }
var client = new Twitter({
    consumer_secret: CONSUMER_SECRET,
    consumer_key: CONSUMER_KEY,
    bearer_token: getBearerToken()})

因为 request 是异步的并且 return 没有响应。尝试做类似(伪代码)

request-promise.post(bearerTokenParameters)
    .next( (response) => {
        return new Twitter({
            consumer_secret: CONSUMER_SECRET,
            consumer_key: CONSUMER_KEY,
            bearer_token: response.bearer_token 
        })
    }
)

但是现在我不能使用我刚刚创建的 Twitter 对象。

我知道我可以使用 script 生成我的 Bearer Token,然后手动输入它,但如果我已经拥有所有信息,似乎必须有更好的方法。

var client;
function getBearerToken() 
{ 
   return new Promise(function(resolve, reject) {
       request.post(bearerTokenParameters).then(function(response) {
           return resolve(response);
       }).catch(function(err) {
           return reject(err)
       }) 
   }
}

getBearerToken()
    .then( (response) => {
        client = new Twitter({
            consumer_secret: CONSUMER_SECRET,
            consumer_key: CONSUMER_KEY,
            bearer_token: response.bearer_token 
        })
    }