【问题标题】:Can't get Google Contacts Data with accessToken无法使用 accessToken 获取 Google 联系人数据
【发布时间】:2026-02-18 15:50:01
【问题描述】:

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

我错过了一些重要的东西......

【问题讨论】:

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


    【解决方案1】:

    '它似乎没有记录在任何地方,但它的 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)
    });
    

    【讨论】: