Google plus API を使用して、Web サイトの閲覧者からメール ID を取得しています。
Google 参照: https://developers.google.com/+/web/signin/add-button
問題は、サインイン ボタンをクリックすると、ブラウザ コンソールで「TypeError: gapi.client.plus is undefined」というエラーが表示されることです。
それを解決する方法。
私のコード:
<script src="https://apis.google.com/js/client:plusone.js?onload=signinCallback" type="text/javascript"></script>
<span id="signinButton">
<span class="g-signin"
data-callback="signinCallback"
data-clientid="*****************.apps.googleusercontent.com"
data-cookiepolicy="single_host_origin"
data-scope="profile">
</span>
</span>
function signinCallback(authResult) {
gapi.client.load('plus', 'v1',function(){});
if (authResult['status']['signed_in']) {
alert("login success");
document.getElementById('signinButton').setAttribute('style',
'display: none');
var request = gapi.client.plus.people.get({
'userId' : 'me'
});
request.execute(function(resp) {
var email = '';
if(resp['emails'])
{
for(var i = 0; i < resp['emails'].length; i++)
{
if(resp['emails'][i]['type'] == 'account')
{
email = resp['emails'][i]['value'];
}
}
}
alert("email ="+email);
console.log('ID: ' + resp.id);
console.log('Display Name: ' + resp.displayName);
console.log('Image URL: ' + resp.image.url);
console.log('Profile URL: ' + resp.url);
});
} else {
alert("login unsuccessful");
console.log('Sign-in state: ' + authResult['error']);
}
}