我希望在第一页上有两个流程,我只是要求用户登录。
然后,如果他/她想邀请朋友,我想触发gapi.client.people.list
方法并检索可见的圆圈列表。
正如我在两个单独的页面上这样做,我无法通过已经过身份验证的gapi对象。我不想再次触发注册流程,但如果我直接执行gapi.client.load
,则会向我显示错误Daily unauthenticated usage limit exceeded
。
function getFriends(e)
{
gapi.client.load('plus','v1', function(){
//gapi.client.setApiKey("myKey");
var request = gapi.client.plus.people.list({
'userId': 'me',
'collection': 'visible'
});
request.execute(function(people) {
console.log(people);
$('#googleFriends').empty();
$('#googleFriends').append('Number of people visible to this app: ' +
people.totalItems + '<br/>');
for (var personIndex in people.items) {
person = people.items[personIndex];
$('#googleFriends').append('<img src="' + person.image.url + '">');
}
});
});
}
这里有解决方案吗?我尝试使用gapi.client.setApiKey
,但不断返回invalid key error
。
我已阅读并尝试了解Google快速入门教程,但他们将people.list
称为登录流程的一部分。
答案 0 :(得分:1)
如果用户已登录/授权您的应用,则可以使用gapi.auth.authorize
方法,使用您用于登录的相同client_id
和scope
参数,以及immediate
设置为true
。
gapi.auth.authorize({
client_id: 'your_client_id',
scope: 'your_scopes',
immediate: true
}, function (authResult) {
// check authresult and then call getFriends
});
这将通过身份验证过程,无需任何用户交互,gapi.client
将能够进行授权呼叫。您必须检查回调中的响应,以确保您确实获得了授权。