无法通过accessToken获取Google通讯录数据

时间:2014-10-19 19:40:35

标签: javascript node.js google-api google-oauth

我已成功获取带有范围(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。

我错过了一些大事......

1 个答案:

答案 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)
});