GMail OAUTH在发布时不要求许可

问题描述 投票:0回答:1

我已经开始使用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,但没有答案。

谢谢,

丹尼。

json oauth token gmail-api
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.