OAuth同意画面localhost

时间:2019-03-12 19:40:47

标签: javascript gmail gmail-api

我正在尝试使用Gmail API javascript代码访问其他电子邮件,代码如下:-

function authenticate() {
        return gapi.auth2.getAuthInstance()
            .signIn({ scope: "https://mail.google.com/ https://www.googleapis.com/auth/gmail.compose https://www.googleapis.com/auth/gmail.modify https://www.googleapis.com/auth/gmail.readonly" })
            .then(function () { console.log("Sign-in successful"); },
                function (err) { console.error("Error signing in", err); });
    }
    function loadClient() {
        return gapi.client.load("https://content.googleapis.com/discovery/v1/apis/gmail/v1/rest")
            .then(function () { console.log("GAPI client loaded for API"); },
                function (err) { console.error("Error loading GAPI client for API", err); });
    }
    // Make sure the client is loaded and sign-in is complete before calling this method.
    function execute() {
        return gapi.client.gmail.users.getProfile({})
            .then(function (response) {
                // Handle the results here (response.result has the parsed body).
                console.log("Response", response);
            },
                function (err) { console.error("Execute error", err); });
    }
    gapi.load("client:auth2", function () {
        gapi.auth2.init({ client_id: "681860637449-ar2gfuhr23nf88h2ct7b5fs0oh213a0n.apps.googleusercontent.com" });
    });

当我尝试访问其他电子邮件时,这里遇到有关此应用未通过验证的问题,这是
的屏幕截图 1.同意屏幕(已发布网址)
2. Gmail登录(使用javascript代码登录)
3.应用未通过验证

1。 Consent Screen
2。 Gmail Login
3。 App not verified

1 个答案:

答案 0 :(得分:1)

不确定这是否会对他人有帮助,但是通过Google Cloud Console在标记为“内部”的应用程序上添加了http://localhost如下对我有用。

  1. 如果您的应用程序不是“内部”应用程序,则必须按照我已阅读的内容执行手动验证步骤-对此一无所知,我的应用程序是内部应用程序
  2. 要解决localhost问题,将主机添加到Credentials配置而不是OAuth2同意屏幕配置似乎对我有用,至少对于我在localhost上的Web应用检索Google表格(该配置不直观,因为两页之间的域验证不同): enter image description here