有没有办法在多个页面上携带gapi.client对象?

时间:2014-08-27 12:53:16

标签: javascript google-plus

我希望在第一页上有两个流程,我只是要求用户登录。 然后,如果他/她想邀请朋友,我想触发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称为登录流程的一部分。

1 个答案:

答案 0 :(得分:1)

如果用户已登录/授权您的应用,则可以使用gapi.auth.authorize方法,使用您用于登录的相同client_idscope参数,以及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

相关问题