我是.net中的Google Auth api日历。我已复制此链接中的代码:Refresh Token Expiration time Google calendar 无法从程序集'Google.Apis,Version = 1.6.0.16897,Culture = neutral,PublicKeyToken = null'
加载类型'Google.Apis.Requests.IErrorResponseHandler'
这是我的代码:
private CalendarService CreateService(string token)
{
//KeyValuePair<string, string> credentials = Ninject.Web.Common.Get3LOCredentials();
var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description, this.clientID, this.ClientSecret);
//provider.ClientIdentifier = clientID;
//provider.ClientSecret = clientSecret;
var auth = new Google.Apis.Authentication.OAuth2.OAuth2Authenticator<NativeApplicationClient>(provider, (p) => GetAuthorization(provider, token));
CalendarService service = new CalendarService(new BaseClientService.Initializer()
{
Authenticator = auth,
ApiKey = ConfigurationManager.AppSettings[this.APIkey].ToString(),
GZipEnabled = false
});
return service;
}
private static IAuthorizationState GetAuthorization(NativeApplicationClient arg, String Refreshtoken)
{
IAuthorizationState state = new AuthorizationState(new[] { CalendarService.Scopes.Calendar.GetStringValue() });
state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl);
state.RefreshToken = Refreshtoken;
return state;
}
答案 0 :(得分:0)
您是否使用包管理器安装API?
此外,您是要每次请求访问还是要保存refreshtoken以便在进行以下调用时获得未过期的访问令牌?
答案 1 :(得分:0)
我通过卸载并重新安装NuGet软件包“google.apis.auth”解决了这个问题。这是因为安装了多个版本。
右键单击项目的“参考”菜单。手动删除 与google.apis.auth相关的所有包引用。
然后,选择“管理NuGet包”,搜索“google.apis.auth”, 并卸载“google.apis.auth”。
重新安装相同的包。
清理并重建
如果它不起作用,您可以尝试重新安装“google.apis”。