Visual Studio 2010(2012年做同样的事情),新的VB.Net项目,Framework 4,为Google Calendar添加了nuget包:
Install-Package Google.Apis.Calendar.v3 -Pre
添加了导入:
Imports Google.Apis
Imports Google.Apis.Calendar.v3
Imports Google.Apis.Calendar.v3.Data
Imports Google.Apis.Calendar.v3.EventsResource
Imports Google.Apis.Services
Imports Google.Apis.Auth.OAuth2
Imports Google.Apis.Auth
Imports Google.Apis.Util.Store
Imports System.Security.Cryptography.X509Certificates
这是我创建服务和凭据的代码:
Dim scopes As IList(Of String) = New List(Of String)()
scopes.Add(CalendarService.Scope.Calendar)
Dim service As CalendarService
Dim serviceAccountEmail As String = "ServiceAccountEmail@developer.gserviceaccount.com"
Dim certificate = New X509Certificate2("privatekey.p12", "notasecret", X509KeyStorageFlags.Exportable)
Dim credential As New ServiceAccountCredential(New ServiceAccountCredential.Initializer(serviceAccountEmail) With {
.Scopes = scopes,
.User = "myuser@there.com"
}.FromCertificate(certificate))
service = New CalendarService(New BaseClientService.Initializer() With
{
.HttpClientInitializer = credential,
.ApplicationName = "appName"
})
然后我得到了“该项目目前包含对多个版本的Google.Apis的引用,对版本1.6.0.16897的直接引用和间接引用(通过'Google.Apis.Auth.OAuth2.ServiceAccountCredential')到版本1.6.0.27822。更改直接引用以使用Google.Apis版本1.6.0.27822(或更高版本)。
如果我尝试使用ServiceAccountCredential或UserCredential,我会得到这个。
几个星期前出现这个问题,使用较旧版本的Google.Apis.Auth解决了这个问题。但是我很难让服务帐户工作(只会收到警告:
A first chance exception of type 'Google.Apis.Auth.OAuth2.Responses.TokenResponseException' occurred in Google.Apis.Auth.dll
并且app会冻结)。
所以从头开始获取最新版本并再次获得,所有Windows更新完成,最后一个Nuget版本(2.7),我是唯一一个遇到此问题的人吗?
答案 0 :(得分:0)
你不是唯一一个。我昨天刚修好了。该服务器有新版本的Google.Apis.Auth,但旧版本的Google.Apis(因此不匹配)。要解决此问题,只需从参考资料中手动删除“Google.Apis.Auth”和“Google.Apis.Auth.PlatformServices”,然后添加版本1.6.0.16898版本(可在dotnet示例中找到)。
解决了问题!