我已成功获取带有范围(https://www.googleapis.com/auth/contacts.readonly
)的访问令牌,以便从Google通讯录API中读取联系人,但现在我对如何请求凭据化用户的联系人感到困惑。
我正在使用https://github.com/jaredhanson/passport-google-oauth来获取令牌。
以下是Google API文档:https://developers.google.com/google-apps/contacts/v3/#retrieving_all_contacts
我试过
GET https://www.google.com/m8/feeds/contacts/default/full?accessToken=<my access token>
但那是401s。
我错过了一些大事......
答案 0 :(得分:1)
&#39;它在任何地方都没有显示,但access_token
不是accessToken
。
这是我的榜样:
app.get('/auth/google/callback', function (req, res, next) {
passport.authenticate('google', function (err, user, info) {
request.get("https://www.google.com/m8/feeds/contacts/default/full?v=3.0&access_token=" + user.accessToken, function (error, result) {
var xml = result.body;
var parseString = require('xml2js').parseString;
parseString(xml, function (err, result) {
var entries = result.feed.entry, contacts = [];
_.each(entries, function (entry) {
if (!(entry['gd:name']===undefined)) {
var gdName = entry['gd:name'][0]['gd:fullName'][0];
var gdEmail = entry['gd:email'][0]['$']['address'];
contacts.push({name: gdName, email: gdEmail});
}
});
res.send(contacts);
});
});
})(req, res, next)
});