我有一个问题,当我开发我的网站Google+登录: 我也一步一步的文档告诉我,但我始终没在第四步: https://developers.google.com/+/web/signin/“immediate_failed” - 无法automatially登录的用户
结果总是“” immediate_failed“ - 无法automatially登录的用户”,我只是不kown为什么,谁能帮助我,非常感谢! :-(
我有一个问题,当我开发我的网站Google+登录: 我也一步一步的文档告诉我,但我始终没在第四步: https://developers.google.com/+/web/signin/“immediate_failed” - 无法automatially登录的用户
结果总是“” immediate_failed“ - 无法automatially登录的用户”,我只是不kown为什么,谁能帮助我,非常感谢! :-(
请注意,在您指出的示例代码中,“immediate_failed”检查被注释掉了。这是有意的,因为用户第一次遇到页面上的登录按钮时,它将失败。
它失败的原因是,当页面首次加载时,甚至在用户按下按钮之前,会向Google发送请求,以确定用户是否已经登录(例如,通过Google或其他站点)。如果他们是 - 他们没有必要再次登录,所以按钮不需要显示,但如果他们有而不是已经登录,你会得到“immediate_failed”响应,并且需要显示(或不清除)按钮。
tl; dr - 当页面第一次加载时,不要担心不会获得immediate_failed。这个是正常的。
这是在[Javascript快速入门页面](https://developers.google.com/sheets/api/quickstart/js)上的工作示例中显示的。 – LondonRob 2017-01-13 19:01:02
作为一种变通方法我在gapi.auth.signIn回调使用gapi.auth.authorize方法。这是我的代码:
gapi.auth.signIn({
'callback': gPlusLoginCallback
});
function gPlusLoginCallback(authResult) {
if (authResult['status']['signed_in']) {
doSmth(authRes['access_token']);
} else if (authResult['error'] == "immediate_failed") {
gapi.auth.authorize({
client_id: gplusClientId,
scope: 'https://www.googleapis.com/auth/plus.login email',
immediate: true
}, function (authRes) {
if (authRes['status']['signed_in']) {
doSmth(authRes['access_token']);
}
});
}
}
function doSmth(accessToken){
//Do smth
}
将此设置更改为“immediate:true”,将其设置为false“immediate:false”。 但是如果你喜欢让更复杂的实现看看这里的第一个示例https://developers.google.com/api-client-library/javascript/start/start-js。你必须向谷歌的召唤“gapi.auth.authorize({...”,第一个用“立竿见影:真”,而第二个具有“立竿见影:假”。
谢谢!这对我有效。 – SsjCosty 2015-05-16 23:10:00
的问题是旧的,但我最近面临这个问题。
在我的情况,那是因为我指定的URI parameterprompt
到none
。我想谷歌不喜欢,如果用户之前从未登录到您的平台。
每当我改为consent
或完全删除它,它运作良好。
你能否请发表你正在使用的代码? – 2013-04-07 14:31:04