GMail OAUTH在发布时未请求许可

时间:2017-12-21 12:22:17

标签: json oauth token gmail-api

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

谢谢,

丹尼。

1 个答案:

答案 0 :(得分:0)

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

相关问题