我不知道如何传递重定向url来完成OAuth2授权。Google REST API指出可以传递redirect_url参数,但是这个.Net API似乎没有传递重定向url的功能
Dim Coll As New List(Of String)
Coll.Add(CalendarService.Scope.Calendar)
Coll.Add(Google.Apis.Tasks.v1.TasksService.Scope.Tasks)
Dim credential As UserCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(New ClientSecrets() With { _
.ClientId = ClientCredentials.ClientID, _
.ClientSecret = ClientCredentials.ClientSecret _
}, Coll, "user", CancellationToken.None, New SavedDataStore(myStoredResponse)).Result
Dim CalService = New CalendarService(New BaseClientService.Initializer() With { _
.HttpClientInitializer = credential, _
.ApplicationName = "myApp"})
当执行此代码时,将启动浏览器实例,但该请求中的return_url参数始终指向某个随机url (例如,http://localhost:<random port number>/Authorize
。不知道这个值是从哪里来的。在接口控制台,我已经设置了http://localhost:4444/Home/Index
。由于没有匹配项,身份验证抛出错误:redirect_uri_mismatch
上面的代码生成了这个请求url。
https://accounts.google.com/o/oauth2/auth?access_type=offline&response_type=code&client_id=589627125301.apps.googleusercontent.com&redirect_uri=http://localhost:44933/authorize/&scope=https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/tasks
总之,问题是,这个http://localhost:44933/authorize/
是从哪里来的?
关于如何在代码中设置此redirect_uri参数,有什么建议吗?
发布于 2015-07-22 21:05:01
尝试添加.CallbackURL属性。Google API通常会寻找一个。
https://stackoverflow.com/questions/27119038
复制相似问题