我在获取oauth2令牌后向Google Contacts API发出以下请求。
$.ajax({
url: 'https://www.google.com/m8/feeds/contacts/XXXXXXXXX@gmail.com/full?access_token=' + authData.authorizationCode + '&alt=json',
dataType: "jsonp",
success:function(data) {
console.log((data));
}
});
这会产生以下GET HTTP请求:
https://www.google.com/m8/feeds/contacts/XXXXXXXXX@gmail.com/full?access_token=4/95N2f8xA1XXXXXXXXXXXXXXQC3BtuuMbk.Aug-7c4GLLMZXmXvfARQvtgU5IVtmgI&alt=json&callback=jQuery111XXXXX1426XXX03&_=1431142848004
然而,Google会以状态代码回复:需要401授权
答案 0 :(得分:3)
仅供参考我使用授权码而不是访问令牌来请求联系详细信息。因此我收到错误的原因
此处的图表说明了oauth2流程: https://developers.google.com/identity/protocols/OAuth2WebServer
这是查看代码实际应该执行的操作的绝佳资源: https://developers.google.com/oauthplayground/
以下是使用googles oauth2 for api的综合示例: http://www.9bitstudios.com/2013/05/using-oauth-2-0-for-google-apis/
以下代码获取电子邮件联系人列表
$.ajax({
url: 'https://www.google.com/m8/feeds/contacts/default/full?alt=json',
dataType: "jsonp",
data: {'access_token': authData.authorizationToken.access_token},
success:function(data) {
var entryOfEmails = data.feed.entry;
for (var i = 0; i < data.feed.entry.length; i++) {
console.log(entryOfEmails[i].gd$email[0].address);
}
}
});