API Календаря Google V3 - PullRequest
       13

API Календаря Google V3

2 голосов
/ 30 марта 2012

Я пытаюсь использовать Google Calendar API V3 для обновления моего календаря. Я хочу получить события моего календаря из кода C #. Я использую .Net Library для Google Calendar API V3.

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

    private void GetEvents()
    {
        var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description,MyClientId, MySecurityId);
        var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthorization);

        CalendarService myService = new CalendarService(auth);  
        try
        {
            Events result = myService.Events.List(MyCalendarId).Fetch();

            if (result.Items.Count > 0)
            {
            }
        }
        catch (Google.GoogleApiRequestException ex)
        {
            //throw ex;
        }
    }

    private static IAuthorizationState GetAuthorization(NativeApplicationClient arg)
    {
        IAuthorizationState state = new AuthorizationState(new[] { "https://www.googleapis.com/auth/calendar.readonly" });

        state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl);          

        if (!string.IsNullOrEmpty(refreshToken)) // refreshToken you stored in step 4
        {
            try
            {
                state.RefreshToken = refreshToken;
                if (arg.RefreshToken(state))     // This is calling out to the OAuth servers with the refresh token getting back a session token, returns true if successful.
                {
                    if (state.RefreshToken != refreshToken) // if the refresh token has changed, save it.
                    {
                        //PersistRefreshToken(authorization.RefreshToken);
                    }
                    return state; // Retain the authorization state, this is what will authenticate your calls.
                }
            }
            catch (ProtocolException ex) { throw ex; }
        }
        return state;
    } 

Я получаю это исключение при выполнении if (arg.RefreshToken(state)):

исключение протокола Ошибка при отправке прямого сообщения или

получение ответа.

Пожалуйста, ПОМОГИТЕ !!!

1 Ответ

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

Вы используете это на веб-сервере или в собственном приложении? Этот код предназначен только для нативного приложения, так что это может быть вашей проблемой.

...