GMail OAUTH在发布时不要求许可

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GMail OAUTH在发布时不要求许可相关的知识,希望对你有一定的参考价值。

我已经开始使用GMail API,它在我的本地机器上工作正常;它将打开Goog​​le权限页面,我可以选择我的帐户。然后它存储返回的json令牌,并且只有在删除此令牌时才会再次询问。

当我发布到服务器时,OAUTH页面永远不会显示,并且应用程序似乎超时,并且“Thread is aborted”异常。

我的代码;

    try
    {
        using (var stream = new FileStream(HttpContext.Current.Server.MapPath("~/credentials/client_id.json"), FileMode.Open, FileAccess.Read))
        {
            string credPath = HttpContext.Current.Server.MapPath("~/credentials/gmail_readonly_token.json");

            _credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                Scopes,
                "user",
                CancellationToken.None,
                new FileDataStore(credPath, true)).Result;
            db.writeLog("INFO", "Gmail Credentials Saved","Credential file saved to: " + credPath);

        }
        // Create Gmail API service.
        service = new GmailService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = _credential,
        });
    }
    catch (Exception e)
    {
        db.writeLog("Error", "Failure when creating Gmail class", e.Message, null, _username, null);
    }

我需要在'client_id.json'(正式的client_secret.json)文件中更改一些内容吗?我唯一改变的是redirect_uris线。

任何其他建议都会受欢迎,我能找到的唯一另一个问题是here,但没有答案。

谢谢,

丹尼。

答案

第一个工作是因为您遵循了预期的用例,即客户端。但是,要在服务器上实现授权,请遵循Implementing Server-Side AUthorization指南。

以上是关于GMail OAUTH在发布时不要求许可的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 OAuth 2.0 从 Indy 发送 Gmail?

使用 OAuth 2.0 访问令牌访问 Gmail Imap

方向更改时不可见的片段

我如何使我的PHP应用程序从不要求提供Gmail API验证码?

使用 imaplib 和 oauth 连接 Gmail

使用 imaplib 和 oauth 连接 Gmail