如何访问已登录的G+用户的公共配置文件(至少是userid)

How to access a logged in G+ user's public profile (at least userid)

本文关键字:配置文件 userid 用户 何访问 访问 登录      更新时间:2023-09-26

我正在编写一个JS应用程序,需要使用登录的G+用户的公开头像。

使用Google+ API,我可以查询配置文件数据,如果我有一个用户id。

https://developers.google.com/apis-explorer/p/+/v1/plus.people.get

但是,我如何获得当前登录用户的userid ?

用户需要使用登录API将他们的Google+帐户连接到您的应用程序。

见:https://developers.google.com/+/web/signin/

一旦用户登录,你可以使用userId 'me'获取他们的数据:

<button class="g-signin"
        data-scope="https://www.googleapis.com/auth/plus.login"
        data-clientid="{ YOUR_CLIENT_ID }"
        data-callback="onSignIn"
        data-theme="dark"
        data-cookiepolicy="single_host_origin"
        data-requestvisibleactions="http://schemas.google.com/AddActivity"
        data-width="wide">
</button>
(function() {
    window.onSignIn = function(authResult) {
        if (authResult.access_token) {
            console.log('success');
            gapi.client.load('plus','v1', function(){ 
                var request = gapi.client.plus.people.get({'userId' : 'me'});
                request.execute(function(response) {
                    console.log('ID: ' + response.id);
                    console.log('Display Name: ' + response.displayName);
                    console.log('Image URL: ' + response.image.url);
                    console.log('Profile URL: ' + response.url);
                });
            });
        } else if (authResult.error) {
            console.log('There was an error: ' + authResult.error);
        }
    };
    var po = document.createElement('script'); po.type = 'text/javascript';
    po.async = true;
    po.src = 'https://apis.google.com/js/client:plusone.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(po, s);
})();

见:https://developers.google.com/+/web/signin/添加按钮# step_5_handling_the_sign-in

下面是工作示例:http://jsfiddle.net/imcg/3UU7E/