Новый клиент Google DocumentsList API .NET? - PullRequest
0 голосов
/ 31 января 2012

Кто-нибудь использовал google-gdata "new DocumentsList API"?

Я пытаюсь получить список документов, и у меня возникают проблемы с аутентификацией.

Использование классов Google.GData.Documents работает нормально, но когда я пытаюсь использовать более новые Google.GData.Docs аналогичным образом, я получаю 401.

Если это поможет, я заметил, что мой адрес электронной почты не добавляется к URL, как это происходит при использовании Google.GData.Documents.

Может кто-нибудь помочь?

Спасибо

Код по запросу:

[Authorize]
public void ListAsync()
{
    string requestorId = "";
    if (Session["email"] != null)
    {
        // get a documents list for the user that logged in
        requestorId = Session["email"].ToString();
    }

    // create an OAuth factory to use
    GOAuthRequestFactory requestFactory = new GOAuthRequestFactory("writely", APPLICATION_NAME);
    requestFactory.ConsumerKey = "XXX";
    requestFactory.ConsumerSecret = "YYY";

    DocsService service = new DocsService(APPLICATION_NAME);

    // this way does work
    //service.setUserCredentials("username", "password");

    // this way doesn't work
    service.RequestFactory = requestFactory;

    Uri queryUri = new Uri("https://docs.google.com/feeds/default/private/full");

    service.AsyncOperationCompleted += DocsQueryCompleted;
    AsyncManager.OutstandingOperations.Increment();
    service.QueryFeedAync(queryUri, DateTime.MinValue, this);
}

Ответы [ 2 ]

0 голосов
/ 04 февраля 2013
        OAuth2Parameters parameters = new OAuth2Parameters();            
        parameters.ClientId = CLIENT_ID;
        parameters.ClientSecret = CLIENT_SECRET;
        parameters.RedirectUri = REDIRECT_URI;
        parameters.Scope = SCOPE;
        string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);

Попробуйте получить токен авторизации с authorizationUrl. Вставьте его в веб-браузер. А потом... Используйте токен как strToken вот так.

        parameters.AccessCode = strToken;
        OAuthUtil.GetAccessToken(parameters);
        string accessToken = parameters.AccessToken;
        string refreshToken = parameters.RefreshToken;

У вас есть вся информация.

        OAuth2Parameters parameters = new OAuth2Parameters();            
        parameters.ClientId = CLIENT_ID;
        parameters.ClientSecret = CLIENT_SECRET;
        parameters.RedirectUri = REDIRECT_URI;
        parameters.Scope = SCOPE;
        parameters.AccessToken= accessToken;
        parameters.RefreshToken= refreshToken;

        GOAuth2RequestFactory requestFactory = new GOAuth2RequestFactory(null, "MyDocumentsListIntegration-v1", parameters);
        Serv = new DocumentsService("MyDocumentsListIntegration-v1");
        Serv.RequestFactory = requestFactory;

Этот код должен работать.

0 голосов
/ 10 мая 2012

Библиотека Google.GData.Docs была экспериментом и фактически была удалена, в то время как Google.GData.Documents была недавно обновлена ​​для реализации всех частей версии 3 API Списка документов.

Проверьте новые документы вместе со всем новым примером кода на https://developers.google.com/google-apps/documents-list/

...