[使用Twitter API,我试图代表Twitter用户发布推文。
我正在使用节点以及passport-twitter和twit模块。
某些资源:
我成功地按照上面的教程进行了护照验证。
我也成功地使用twit发布了我的Twitter开发者帐户。
但是,我很难将这两件事结合起来;尝试在代表另一个用户上发布到Twitter。为此,我需要获取用户的访问令牌和访问令牌密钥。然后,我需要使用该信息向Twitter API发出发布请求。
我不确定将发帖请求放在护照特警代码中的何处。我尝试将其放在第二个路由中,这是Twitter用户登录后将其重定向到的URL。
app.get('/twitter/login', passport.authenticate('twitter')) app.get('/twitter/return', passport.authenticate('twitter', { failureRedirect: '/' }), function(req, res) { //Post using twit //grab access token and access token secret from the request query const access_token = req.query.oauth_token; const access_token_secret = req.query.oauth_verifier; //set the configurations with the access token and access token secret that we just got const config = { consumer_key: <consumer key here>, consumer_secret: <consumer secret here>, access_token, access_token_secret, timeout_ms: 60*1000, strictSSL: true } //pass in the configurations var T = new Twit(config); //post T.post('statuses/update', { status: 'hello world!' }, function(err, data, response) { if (err)console.log("oops, didn't tweet: ", err.message); }) res.redirect('/'); })
但是我收到一个错误:
Invalid or expired token.
我希望它能正常工作,因为身份验证有效。
这是我第一次使用OAuth,所以也许我误会了这一切。
我应该在哪里发布请求?
UPDATE:
我尝试使用开发者帐户的访问令牌和密码发布到开发者帐户。有效。这使我相信用户的访问令牌和密码有问题。
我想我部分知道会发生什么。
我假设在请求查询对象中找到的属性oauth_verifier
是访问令牌密钥。
const access_token_secret = req.query.oauth_verifier;
但是现在我不认为
oauth_verifier
与访问令牌密码相同。oauth_verifier
的字符少于我的开发帐户的访问令牌密钥。因此,似乎数据类型是不同的。
但是现在我想弄清楚访问令牌的秘密在哪里?请求查询对象(req.query
)中只有两个属性;
oauth_token
oauth_verifier
用户的访问令牌密码在哪里?
[使用Twitter API,我正在尝试代表Twitter用户发布推文。我正在使用node以及passport-twitter和twit模块。一些资源:我按照此视频教程NodeJS和...
我解决了我的问题。一直在passport-twitter的文档中。老兄,我在这个问题上花了好几天。