2015-07-06 4 views
0

Я застрял, и документация Google не является никакой помощью.API календаря Google 403 Запрещено при создании события

Я аутентифицировал приложение с соответствующими областями. Я получаю экран согласия, и токен обновления хранится правильно.

Я могу просматривать календари для пользователя, но когда я пытаюсь вставить событие, я получаю 403 Запретную ошибку.

Это код, который я использую для добавления события. (Тот же самый код работает, прежде чем я добавил доступ в автономном режиме)

UserCredential credential = GetCredential(user.Username); 

if (credential != null) 
{ 
    CalendarService service = new CalendarService(new BaseClientService.Initializer() 
    { 
     HttpClientInitializer = credential, 
     ApplicationName = "OO Software Service System", 
    }); 

    //Create the event. 
    Event e = new Event() 
    { 
     Attendees = new List<EventAttendee> 
     { 
      new EventAttendee() 
      { 
       Id = user.GoogleId, 
       Email = user.Username 
      } 
     }, 
     Start = new EventDateTime() 
     { 
      DateTime = start 
     }, 
     End = new EventDateTime() 
     { 
      DateTime = end 
     }, 
     Created = DateTime.Now, 
     Summary = eventName 
    }; 

    //Insert the event into the calendar. 
    e = service.Events.Insert(e, "primary").Execute(); 

Объем и полномочия:

public static string[] GetScopes() 
{ 
    return new string[] { CalendarService.Scope.Calendar, PlusService.Scope.PlusMe }; 
} 

public static UserCredential GetCredential(string username) 
{ 
    return GoogleWebAuthorizationBroker.AuthorizeAsync(
     GetSecrets(), 
     GetScopes(), 
     username, 
     CancellationToken.None, 
     new ServiceSystemDataStore()).Result; 
} 

Есть ли кто-нибудь, кто может пролить свет на то, что может быть проблема? Ошибка, говорящая о запрещенном домене 403, не совсем полезна.

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

ответ

0

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

Иногда вам просто нужно написать вопрос, чтобы увидеть ответ самостоятельно.

Смежные вопросы