当我使用这种类型的初始化时:
var auth2;
gapi.load('auth2', function() {
gapi.auth2.init({
client_id: 'MY_CLIENT_ID.apps.googleusercontent.com',
}).then(function(){
auth2 = gapi.auth2.getAuthInstance();
console.log(auth2.isSignedIn.get()); //now this always returns correctly
});
});
我收到以下错误:
uncaught exception: gapi.auth2.ExternallyVisibleError: Missing required parameter 'client_id' (unknown)
TypeError: auth2 is undefined
但如果我使用元标记初始化
<meta name="google-signin-client_id" content="MY_CLIENT_ID.apps.googleusercontent.com">
这样可行,但 auth2.isSignedIn.get()给了我不一致的值。
我怎样才能解决这个问题?
答案 0 :(得分:0)
您可能已包含以下代码行以显示Google的登录按钮。
<div class="g-signin2" data-onsuccess="onSignIn"></div>
如果是这样,请从您的html页面中删除它,并检查您是否仍在控制台中收到错误。
答案 1 :(得分:0)
以克里希纳的答案为基础,具体地说,您要删除data-onsuccess="onSignIn"></div>
部分,然后创建一个custom button:
<div id="my-signin2"></div>
<script>
function renderButton() {
gapi.signin2.render('my-signin2', {
'scope': 'profile email',
'width': 240,
'height': 50,
'longtitle': true,
'theme': 'dark',
});
}
</script>
由于我的登录名是handled server-side,所以我添加了另一个jquery函数来重定向到后端流程,但是您可以相应地进行调整:
<script>
$('#my-signin2').click(function() {
// if your sign in is handled by your backend:
location.href = "/signin";
// signInCallback defined in step 6.
// auth2.grantOfflineAccess().then(signInCallback);
});
</script>