我是新来的。请原谅我,如果有任何规则我没有跟进,请随时告诉我。
使用Google Calendar apis V3时,我遇到了有关OAuth2.0身份验证的问题。
这是代码。
Sub Main()
Dim secret As New ClientSecrets
secret.ClientId = "XXXXXXXXXX.apps.googleusercontent.com"
secret.ClientSecret = "XXXXXXXXXXXXXX"
Dim init As New Flows.AuthorizationCodeFlow.Initializer("https://accounts.google.com/o/oauth2/auth", "https://accounts.google.com/o/oauth2/token")
init.ClientSecrets = secret
Dim flow As New Flows.AuthorizationCodeFlow(init)
Dim token As Responses.TokenResponse = flow.LoadTokenAsync("XXXXXX@gmail.com", CancellationToken.None).Result
Dim credential As New UserCredential(flow, "XXXXXX@gmail.com", token)
Try
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(secret, {CalendarService.Scope.Calendar}, "user", CancellationToken.None, ).Result
Catch ex As Exception
MsgBox(ex.Message)
End Try
它可以成功弹出谷歌登录界面
但是,它显示有关“错误:redirect_uri_mismatch”
的错误消息我已经设置了一个
的重定向网址,这很奇怪http://localhost:8080/
在Google Developers Console中
但是错误消息的详细信息显示重定向URL不是我设置的URL并且保持更改localhost端口号。
我认为问题来自下面一行
Dim token As Responses.TokenResponse = flow.LoadTokenAsync("XXXXXX@gmail.com", CancellationToken.None).Result
我错过了什么或者丢失了一些参数?
感谢是否有人可以帮助解决这个问题。
答案 0 :(得分:0)
Visual Studio喜欢随机更改端口号。您可以将其设置为不这样做。应该在project properties -> web -> project URL
的某个地方。
或者
您可以转到Google开发人员控制台并创建Client ID for native application
,使用此功能在您的localhost上进行测试。
当您将其移至您的网站时,请不要将此版本发布到制作中,请将其更改回Client ID for web application