GMail OAUTH在发布时不要求许可
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GMail OAUTH在发布时不要求许可相关的知识,希望对你有一定的参考价值。
我已经开始使用GMail API,它在我的本地机器上工作正常;它将打开Google权限页面,我可以选择我的帐户。然后它存储返回的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