2014-06-14 1 views
-1

Я разрабатываю интеграцию с Google Calender из веб-приложения vb.net. До сих пор я понимаю, что мне нужна моя реализация iDataStore, поскольку я буду хранить токены обновления, принадлежащие разным пользователям на моем веб-сайте, с целью подключения к их календарю позже и добавления событий.Авторизация API Google с использованием хранимого токена обновления и iDataStore в VB.NET

Вот мой код для создания нового авторизованного пользователя:

 Dim clientSecrets As New ClientSecrets 
     clientSecrets.ClientId = "MyClientID" 
     clientSecrets.ClientSecret = "MyClientSecret" 

     Dim input() As String = {"https://www.googleapis.com/auth/calendar"} 
     Dim scope As New List(Of String)(input)  

     Dim myStoredResponse As New GoogleOauthAPI.StoredResponse(txtrefreshToken.Text) 
     Dim savedDataStoreObj As New GoogleOauthAPI.SavedDataStore(myStoredResponse) 

     Dim credential As UserCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(clientSecrets, scope, "user", Threading.CancellationToken.None, savedDataStoreObj).Result 

Я получаю следующее сообщение об ошибке при попытке создать объект UserCredential:

Value cannot be null. Parameter name: task 

GoogleOauthAPI.StoredResponse был основан на following guide, но преобразованный из C# в vb.net. У меня была некоторая неопределенность относительно того, было ли правильно сделано преобразование кода.

Here is the original C# class

and here is the class converted to vb

Когда myStoredResponse объект создан, я могу проверить его в режиме отладки, и это выглядит, как он тянет в коде обновления, я просто неопределенными, почему учетные данные не могут быть созданы и выбрасывает эту ошибку?

enter image description here

Любая помощь будет высоко ценится!

+0

Не знаете, почему пустые голоса? – QFDev

ответ

0

Решила проблему в конце. При преобразовании класса интерфейса iDataStore из C# в VB.net у меня не было Implements IDataStore.MethodName, добавленного к каждой функции.

Here is my revised iDataStore VB class, не стесняйтесь использовать это в своих проектах.