我正在使用 ASP.NET MVC3 (C#) 编写网络应用程序,我需要从我登录用户的 Google 帐户获取日历和联系人。
因为我不想存储用户的凭据,所以我正在使用 OAuth(但不使用 OpenID - 我不希望我的用户使用他们的 Google 帐户登录)。
我有以下代码来获取访问 token 并稍后使用它来获取数据:
var google = new WebConsumer(GoogleConsumer.ServiceDescription, this.TokenManager);
// Is Google calling back with authorization?
var accessTokenResponse = google.ProcessUserAuthorization();
if (accessTokenResponse != null) {
this.AccessToken = accessTokenResponse.AccessToken;
//SAVE ACCESS TOKEN TO DATABASE
} else if (this.AccessToken == null) {
// If we don't yet have access, immediately request it.
GoogleConsumer.RequestAuthorization(google, GoogleConsumer.Applications.Contacts);
}
不幸的是,如您所见,我只请求联系人的授权,RequestAuthorization
方法不允许我设置多个应用程序。
如何在不需要针对不同范围使用多个不同 token 的情况下做到这一点? (一个用于日历,一个用于通讯录等)
最佳答案
GoogleConsumer
类在 DotNetOpenAuth.ApplicationBlock
项目中作为源代码提供给您。请随时对其进行修改,使其满足您的需要。
关于asp.net-mvc - 使用 DotNetOpenAuth 从 Google 帐户同时获取联系人和日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6681819/