0
我试图在节点应用中通过Twitter启用oauth2登录。我有我的Twitter帐户,我被列入电子邮件白名单,已更改Twitter开发页面上的设置(以便登录时,用户被告知我的应用可以访问他们的电子邮件)。从node.js的Twitter请求用户电子邮件
但用户对象仍然不包含电子邮件条目。电子邮件是不同的请求,还是我错过了什么?我将把服务器代码放在下面,并且可以根据需要启动Web服务器,以防有人想看到控制台输出。
相关的代码在我的server.js:
var express = require('express'),
request = require('request'),
path = require('path'),
fs = require('fs'),
bodyParser = require("body-parser");
var Twitter = require("node-twitter-api");
var app = express();
...
var twitter = new Twitter({
consumerKey: 'XXXXXXX',
consumerSecret: 'XXXXXX',
callback: 'http://thelionstestingjungle.com'});
var _requestSecret;
app.get("/tokenRequest", function(req, res) {
console.log('Token request');
twitter.getRequestToken(function(err, requestToken, requestSecret) {
if (err) {
console.log('Token request error');
res.status(500).send(err);
} else {
console.log('Request secret: ' + requestSecret);
_requestSecret = requestSecret;
res.redirect("https://api.twitter.com/oauth/authenticate?oauth_token=" + requestToken);
}
});});
app.get("/accessToken", function(req, res) {
console.log('Access token');
var requestToken = req.query.oauth_token,
verifier = req.query.oauth_verifier;
twitter.getAccessToken(requestToken, _requestSecret, verifier, function(err, accessToken, accessSecret) {
if (err) {
console.log('Get info error');
res.status(500).send(err);
} else {
twitter.verifyCredentials(accessToken, accessSecret, function(err, user) {
if (err) {
console.log('Verification in get info error');
res.status(500).send(err);
} else {
console.log('User: ' + JSON.stringify(user));
res.send(user);
}
});
}
});});
...
我这样做的验证凭据,我没有得到电子邮件 任何想法为什么? – Erez
它只是电子邮件,你错过了,你是否包括参数,正确拼写的关键?我几个月没有和Node合作过,所以你可能想创建自己的票。 – dylanthelion
管理它,但谢谢 – Erez