我想有两个流程,在第一页中,我只是要求用户登录。
然后,如果他/她想邀请朋友,我想触发gapi.client.people.list
方法并检索可见的圈子列表。
当我在两个单独的页面上执行此操作时,我无法携带已通过身份验证的apgi对象。我不想再次触发登录流程,但是如果我直接执行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
作为登录流程的一部分。 最佳答案
如果用户已经登录/授权了您的应用程序,则可以将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
将能够进行授权的呼叫。但是,您将必须在回调中检查响应,以确保您已获得实际授权。文件:https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauthauthorize
关于javascript - 有什么办法可以在多个页面上携带gapi.client对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25527736/