Javascript 有没有办法在多个页面上携带gapi.client对象?
我想有两个流程,在第一页,我只是要求用户登录。 然后,如果他/她想邀请朋友,我想启动Javascript 有没有办法在多个页面上携带gapi.client对象?,javascript,google-plus,Javascript,Google Plus,我想有两个流程,在第一页,我只是要求用户登录。 然后,如果他/她想邀请朋友,我想启动gapi.client.people.list方法并检索可见的圆圈列表。 由于我在两个单独的页面上执行此操作,因此无法执行已通过身份验证的gapi对象。我不想再次触发登录流,但如果我直接执行gapi.client.load,它会给我一个错误,告诉我超出了每日未经验证的使用限制 function getFriends(e) { gapi.client.load('plus','v1', function(
gapi.client.people.list
方法并检索可见的圆圈列表。
由于我在两个单独的页面上执行此操作,因此无法执行已通过身份验证的gapi对象。我不想再次触发登录流,但如果我直接执行gapi.client.load
,它会给我一个错误,告诉我超出了每日未经验证的使用限制
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 + '">');
}
});
});
}
函数getFriends(e)
{
load('plus','v1',function(){
//gapi.client.setApiKey(“myKey”);
var request=gapi.client.plus.people.list({
'userId':'me',
“集合”:“可见”
});
请求.执行(功能(人员){
console.log(人);
$(“#谷歌好友”).empty();
$(“#谷歌好友”).append('此应用程序可见的人数:'+
people.totalItems+“
”);
for(person.items中的变量personIndex){
person=people.items[personIndex];
$(“#谷歌好友”).append(“”);
}
});
});
}
这里有解决办法吗?我尝试使用gapi.client.setApiKey
,但始终返回无效密钥错误。
我已经阅读并试图理解google quickstart教程,但他们在那里调用了人员。将列为登录流程的一部分。如果用户已经登录/授权了你的应用程序,你可以使用gapi.auth.authorize
方法,使用与登录时使用的客户端id
和范围
参数相同的方法,和immediate
设置为true
gapi.auth.authorize({
client_id: 'your_client_id',
scope: 'your_scopes',
immediate: true
}, function (authResult) {
// check authresult and then call getFriends
});
这将在不需要任何用户交互的情况下通过身份验证过程,gapi。然后,客户端将能够进行授权调用。不过,您必须检查回调中的响应,以确保您确实获得了授权
文档:So按钮单击应触发gapi.auth.authorize
。我是否需要gapi.client.load
。请原谅我的天真是的,您需要调用加载API特定方法的gapi.client.load
,否则您将无法调用gapi.client.plus
方法。