【发布时间】:2020-10-04 07:48:51
【问题描述】:
好的,所以我正在尝试在这个项目上实现 Gmail API,我要做的就是发送一封电子邮件,这就是我目前得到的:
- 在 google 开发者控制台注册一个新项目,启用 gmail API 并配置同意屏幕。
在同意屏幕中,我刚刚更改了 gmail.send 的应用名称和范围。
将我的凭据创建为 web 应用程序,这就是我在重定向 uris 上放置的内容。
由于我正在使用 MVC 并希望将模板与 Home 控制器和索引视图一起使用,我不知道这是否正确,但据我所知,我必须编写应该在身份验证,这是我项目中唯一的页面。
然后我下载 credentials.json 文件并将其添加到我的项目中,然后执行此代码,ruta 是我的路径凭证.json
UserCredential credential;
using (var stream =
new FileStream(ruta, FileMode.Open, FileAccess.Read))
{
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None).Result;
}
之后我执行了程序,但我再也看不到授权页面,而是出现了错误:
错误 400:redirect_uri_mismatch。 请求中的重定向 URI,http://127.0.0.1:62297/authorize/,与授权给 OAuth 客户端的不匹配。
我尝试将该 URI 作为“http://localhost/authorize”和“http://localhost/authorize/”添加到我的重定向 URI,但我不断收到相同的错误消息。
我是这个新手,所以我对所有这些重定向 uri 有点迷茫,感谢您的回答
【问题讨论】:
-
为什么不将 '127.0.0.1:6666/authorize' 添加到列表中
-
每次运行程序时端口号都会发生变化,我发现它实际上并不重要,我刚刚尝试将我所有的“localhost”URI 更改为“127.0.0.1”并且它有效,现在我需要看看哪个是有效的,但谢谢
标签: c# google-oauth gmail-api google-api-dotnet-client