У меня есть код для получения списка событий из Google Calendar API. После получения этих событий он сравнивает список с другим имеющимся у меня локальным списком и заполняет события из Календаря Google любым из локального списка, которого там еще нет.
Первая часть работает полностью нормально, где она извлекает токен доступа, а затем использует этот токен в запросе для получения списка событий. Следующая часть, когда он пытается загрузить событие, завершается неудачей, с сообщением об ошибке 401 «Invalid Credentials».
Я проверил все в консольном API, чтобы убедиться, что Календарь Google включен как API, и что там все настроено правильно. Я проверил документацию API, чтобы убедиться, что я определенно использую правильную область в своем запросе аутентификации для пост-запроса API для отправки события в GCal.
На данный момент я не уверен, что это проблема с запросом, а сообщения просто вводят в заблуждение, или проблема действительно в авторизации, и я просто что-то упускаю полностью.
request = new RestRequest("/calendars/"+calID+"/events", Method.POST);
request.AddParameter("access_token", access_token);
request.AddJsonBody(import);
IRestResponse<GCalEvent> inner_response = client.Execute<GCalEvent>(request);
В приведенном выше коде переменная access_token - это то же значение, которое использовалось за несколько секунд до этого в успешном запросе для получения событий. (т.е. это должно быть действительным.)
Указанная переменная "import" основана на пользовательской объектной модели, включенной ниже:
public class GCalEvent
{
public string id { get; set; }
public string status { get; set; }
public string htmlLink { get; set; }
public DateTime created { get; set; }
public DateTime updated { get; set; }
public string summary { get; set; }
public string description { get; set; }
public string start { get; set; } // yyyy-MM-dd
public string end { get; set; } // yyyy-MM-dd
}
Любая помощь или предложения будут приветствоваться, так как я уже давно об этом зашла.