我在下面使用此代码已有两年了,直到一个月前,它都可以正常工作。
MY_CUSTOM_URL 在Google授权的重定向URI中声明并注册。
function initClient() {
gapi.client.init({
apiKey: APKEY,
clientId: CLIENTID,
discoveryDocs: ["https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"],
scope: "https://www.googleapis.com/auth/calendar",
redirect_uri: MY_CUSTOM_URL,
ux_mode: 'redirect',
}).then(function () {
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
});
}
当我尝试调用gapi.auth2.getAuthInstance().signIn();
时,即使我使用的是本地主机(也在Google上注册),它也只会忽略 MY_CUSTOM_URL 并重定向到默认的网站根域。 ,并且不进行身份验证。
如果我评论 ux_mode ,它会打开一个弹出窗口并正常工作,但是我不能为此目的使用弹出窗口。
谢谢
答案 0 :(得分:1)
来自Doc
必需的。确定API服务器在重定向后将用户重定向到的位置 用户完成授权流程。 该值必须完全匹配 API中为您的项目列出的redirect_uri值之一 控制台。请注意,http或https方案,大小写和斜杠 ('/')必须全部匹配。
检查API Console中的redirect_uri,使其与您的 MY_CUSTOM_URL
在这里可以找到它
选择api =>凭据=>选择OAuth 2.0客户端ID =>授权的重定向URI [输入字段]