已更新
我仍然在access token
的帮助下得到了答案:)
并提及它。
我正在使用Google contacts API
来获取user
个联系人。
我使用passport.js登录Google并在passport's access token
的帮助下呼叫API
https://www.google.com/m8/feeds/contacts/default/full?max-results=999999&alt=json&oauth_token=' + token
获取所有contacts
但我需要使用其他内容而非access token
secret key
或client key
。
因为如果用户添加了log in
,每次我需要Google
contacts
newly contact
来同步Google
。
我做了 var getGoogleContacts = function(token, userId) {
var url = 'https://www.google.com/m8/feeds/contacts/default/full?max-results=999999&alt=json&oauth_token=' + token;
request(url, function(error, response, body) {
if (error) {
console.log(error);
} else {
var contacts = JSON.parse(body);
saveGoogleContacts(userId, contacts);
}
});
};
/*Get contacts and store in user_contact table*/
var saveGoogleContacts = function(userId, contacts) {
var gContacts = [];
contacts.feed.entry.forEach(function(contact, index) {
if (contacts.feed.entry[index].gd$email) {
gContacts.push([
null, null, contacts.feed.entry[index].title.$t, "'" + contacts.feed.entry[index].gd$email[0].address + "'",
1, userId, 0
]);
}
});
if (gContacts.length > 0) {
user.insertContacts(gContacts, function(err, result) {
if (err) {
console.log(err);
} else {
console.log('contacts saved: ' + result);
}
});
}else{
console.log('No records available');
}
};
但没有得到任何解决方案。
任何想法对我都有帮助。
以下是我获取联系人的代码
var mergedMesures = mesures
.GroupBy(_ => _.Commentaires)
.Select(_ => new HistoMesures
{
Debut = _.Min(item => item.Debut),
Fin = _.Max(item => item.Fin),
Commentaires = _.Key
});
答案 0 :(得分:0)
我在这里得到了答案。
正如我所提到的,我使用passport.js
使用Google
在登录过程中,passport
提供access token
,refresh token
默认refresh token
将为null
。
如果您想获得refresh token
,则需要在身份验证过程中传递parameter
accessType:offline
,就像这样
app.get('/auth/google', passport.authenticate('google', { scope : ['profile', 'email','https://www.google.com/m8/feeds'],accessType: 'offline', approvalPrompt: 'force' }));
之后,您将获得refresh token
并将其存储在任何永久性位置,因为它不会expire
,并且只要您想获得access token
要access token
我正在使用refresh-token模块。
格式化token
后,只需拨打API
即可获取联系人。
喜欢这个
var url = 'https://www.google.com/m8/feeds/contacts/default/full?max-results=999999&alt=json&oauth_token=' + token;
request(url, function(error, response, body) {
if (error) {
cb(error);
} else {
var contacts = JSON.parse(body);
cb(null, contacts);
}
});
}
就是这样。