【发布时间】:2016-03-01 08:07:19
【问题描述】:
我想检索用户联系人的电子邮件地址。 我打算使用 Google People API。 这是我要检索的函数:
function makeApiCall() {
gapi.client.load('people', 'v1').then(function() {
var request = gapi.client.people.people.connections.list({
resourceName: 'people/me',
pageSize: 200,
fields: 'connections(resourceName)'
});
request.execute(function(resp) {
if (resp.connections){
var batch = gapi.client.newBatch();
var emails = [];
for(var i = 0; i < resp.connections.length; i++){
var req = gapi.client.people.people.get({
resourceName: resp.connections[i].resourceName,
fields: "emailAddresses(value)"
});
batch.add(req);
req.then(function (email){
var idx = email.body.indexOf("{");
var jsonString = email.body.substring(idx > 0 ? idx : 0);
var obj;
try {
obj = JSON.parse(jsonString);
if (obj.emailAddresses){
for (j = 0; j < obj.emailAddresses.length; j++){
emails.push(obj.emailAddresses[j].value);
}
}
} catch (err) {
console.error(email);
}
})
}
batch.then(function (){
console.log(emails);
}, function (err){
console.error(err);
});
} else {
console.error("Error", resp);
}
});
}, function (err){
console.error(err);
});
}
基本上,我要获取 200 个连接来检索它们的资源名称。
此资源名称将用于获取用户的电子邮件地址。
我正在使用批处理请求来获取 200 个用户的电子邮件。
问题是,对于某些用户,我收到以下错误:
{
"error": {
"code": 429,
"message": "Insufficient tokens for quota group and limit ReadGroupUSER-100s using the limit by ID 991457241470@515501272068.",
"status": "RESOURCE_EXHAUSTED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.Help",
"links": [
{
"description": "Google developer console API key",
"url": "https://console.developers.google.com/project/991457241470/apiui/credential"
}
]
}
]
}
}
可能是什么原因以及如何解决此问题?
谢谢
【问题讨论】:
-
错误消息是由于超过了您的客户端在 100 秒内可以发出的请求数。如果你像我一样,你可能已经创建了一个循环,不小心重复钻取服务器。抱歉,我无法帮助您解决核心问题。
-
我也遇到了同样的问题。根据console.developers.google.com/apis/api/people.googleapis.com/… 的限制是每 100 秒 17,000 个请求......我不可能超过这个限制,所以我不确定发生了什么:/
-
这个问题你解决了吗??
-
是的,我做到了。我会发布解决方案
标签: javascript email google-api google-people-api