我是outh2 gmail api的新用户。当我创建Web Api并尝试运行时,我可以在按钮单击时重定向到gmail权限页面。 但是在iis中托管并创建域名后,我无法重定向到gmail的权限页面。
以下是代码部分:
private GmailService GmailServices() {
UserCredential credential;
GmailService service = new GmailService();
string GmailCredentialLocation = System.Web.HttpContext.Current.Request.MapPath("~\\GmailClientDetails.json");
using (var stream =
new FileStream(GmailCredentialLocation, FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
UserId,
CancellationToken.None,
new FileDataStore(credPath, true)
).Result;
}
service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
SetUserSub(UserId);
SendMail();
}
return service;
}
在域上运行时,即使尝试调试
,我也没有收到任何错误credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
UserId,
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
这个代码部分它会回到域并且域缓冲继续进行
任何建议都会有所帮助
答案 0 :(得分:0)
根据官方文档Using OAuth 2.0 for Web Server Applications,当您在API控制台的Credentials page上为OAuth client ID
类型创建Web application
时(获取{ {1}}档案)
请注意:
使用PHP,Java,Python等语言和框架的应用程序 Ruby, .NET必须指定授权的重定向URI 。重定向 URI是OAuth 2.0服务器可以发送的端点 响应。
我希望您只使用localhost设置您的凭据 - 作为授权的重定向URI - 因此,如果您将您的域URI 添加到授权的重定向URI,指定引用您的域的URI ,然后重新生成 client_secret.json
它会起作用。