Но после их подтверждения снова непонятное окно с каким-то кодом, который неизвестно куда вставлять.
Теперь надо отправить этот код, со своими апи ключами - clientId и clientSecret.
В ответ придет json, со всей нужной инфой.
var scopes = new List<string>()
{
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/drive"
};
var code = "код который получили";
var redirectUri = "<redirect_uri>";
var scopeStr = string.Join(" ", scopes);
var clientId = "<client_id>";
var clientSecret = "<client_secret>";
var body = string.Format(
"code={0}&" +
"redirect_uri={1}&" +
"scope={2}&" +
"grant_type=authorization_code&" +
"client_id={3}&" +
"client_secret={4}",
code,
redirectUri,
scopeStr,
clientId,
clientSecret);
var response = ZennoPoster.HttpPost(
"https://oauth2.googleapis.com/token",
System.Net.WebUtility.UrlEncode(body),
"application/x-www-form-urlencoded",
"",
"utf-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
15000);
Надо просто понять, зачем вся эта муть делается, и тогда все уложится в голове.
Есть Вася, он супер-рогер, и решил сделать супер-прогу, которая использует различные фишки гугла.
Есть Петя. Вася хочет дать ему свою прогу, чтобы он ее юзал.
1. Вася получает апи ключи, делает супер-прогу и дает ее Пете.
2. При первом запуске гугл спрашивает у Пети, готов ли он дать разрешение на то чтобы прога Васи что то делала с его акком.
Это первый запрос, который редиректит Васю на форму авторизации гугла.
3. Если все ок, в ответ приходит код, сделанный под ключи Васи и под акк Пети.
Второй запрос - получение токенов, с помощью которых прога Васи, под управлением Пети будет общаться с сервисами гугла и что то делать на его акке.
Токены сохраняются(access_token и refresh_token ), и потом используются, чтобы Пете каждый раз не приходилось давать разрешения.
Вообще ручками этот код никуда обычно не вбивается. И в ручную эти запросы не отправляются.
Например у гугла есть либы, для удобного работа с их сервисами.
При запросе разрешений, поднимается локальный http сервер, на который потом редиректится(это вот который параметр redirect_uri) ответ от гугла с кодом.
Сервак его принимает, отсылает запрос, в ответ получает токены, и сохраняет их. Пользователь даже этого не замечает, и ему не приходиться возиться с запросами.
UPD: Касаемо гугл таблиц в ZP это все делать не надо(запросы). По идее все должно делаться автоматом.
Надо только получить апи ключи, вбить в настройках ZP путь к файлу с апи ключами и дать нужные разрешения.