Подключение Гугл таблиц в Зеннопостер

  • Автор темы Автор темы Igorii
  • Дата начала Дата начала

Igorii

Client
Регистрация
21.02.2015
Сообщения
376
Реакции
313
Баллы
63
В последних версиях Зенки реализована возможность подключения и работы с Гугл таблицами. Не у всех получается сразу подключить их по инструкции, потому, записал видео по подключению, возможно кому-то будет полезно.
В конце, что-то заглючила Зенка, перестала подтягивать данные, возможно надо было подольше подождать, не обращайте внимания)

 
Последнее редактирование:
В конце, что-то заглючила Зенка, перестала подтягивать данные
Нет никакого глюка, если изменения в таблице были произведены не из ZennoPoster, потребуется несколько минут для её обновления.
Чтобы не ждать, можно использовать кнопку "Перезагрузить таблицу".

exrsTha.png
 
  • Оценить
Реакции: Sergodjan
Нет никакого глюка, если изменения в таблице были произведены не из ZennoPoster, потребуется несколько минут для её обновления.
Чтобы не ждать, можно использовать кнопку "Перезагрузить таблицу".
Кнопку жал с 6:20, на видео видно, не обновлялась. Может у меня комп тормозил, из-за записи видео, хз
 
Ребят, а для чего можно прикрутить Гтаблицы?
Выгрузки данных?
это общие таблицы получается. с любого сервака легкий доступ к данным. если БД локально еще более менее легко поднять и можно юзать, то администрировать и давать доступ к сетевой базе, да еще спрятавшейся за NAT с файрволом и динамическим IP.... ну тут надо много знаний по администрированию системы. а гугл таблицами все просто.
а еще да, легкий выгруз для клиента. напарсил данных, сформировал отчет и отправил ссылку клиенту. ну это я очень приближенно :)
 
  • Оценить
Реакции: Festem и Сибиряк
Все равно для нескольких копий зеннопостера их не получиться использовать из-за задержек, данные будут теряться! Так что я для себя смысла в них не вижу!
 
Все равно для нескольких копий зеннопостера их не получиться использовать из-за задержек, данные будут теряться! Так что я для себя смысла в них не вижу!
не норм. как раз вести общую базу. я для себя давно уже завел правило разделять таблицы на хранящие данные и таблицы постоянно обновляющиеся. при крахе, зенки, системы таблицы хрянящие данные вообще не страдают. а те которые перезаписываются автоматом пересоздаются если обнаруживается что они недоступны. так и гугл будет. в гугле будут общие базы, а работать боты будут с локальными. результат будет сваливаться в отдельные гугл таблицы . если грамотно подойти в самом начале разработки расширяемой системы, то проблем не будет.
 
  • Оценить
Реакции: bizzon и Сибиряк
Возвращаясь к теме. Да, я так и не смог настроить доступ по АПИ к таблицам Гугла) 3 года назад смог и даже других учил как это делать.
Пробовал с разных аккаунтов, в строгом соответствии с инструкцией (да и по сути это не сервер настраивать, проще некуда), и даже с этим видео, изучил там всё, но безрезультатно.
Уже стало очень интересно найти причину появления проблемы на которую я убил не один час.
Заметил, что вот у меня на стадии авторизации приложения только одно приложение предлагается разрешить.
Вероятно причина где-то там. Но как заставить запрашивать два приложения, второе "Просмотр метаданных файлов..." - непонятно.
 

Вложения

  • 2020-02-17_20-55-39.png
    2020-02-17_20-55-39.png
    84,9 KB · Просмотры: 420
  • 2020-02-17_20-55-00.png
    2020-02-17_20-55-00.png
    30,5 KB · Просмотры: 401
Возвращаясь к теме. Да, я так и не смог настроить доступ по АПИ к таблицам Гугла) 3 года назад смог и даже других учил как это делать.
Пробовал с разных аккаунтов, в строгом соответствии с инструкцией (да и по сути это не сервер настраивать, проще некуда), и даже с этим видео, изучил там всё, но безрезультатно.
Уже стало очень интересно найти причину появления проблемы на которую я убил не один час.
Заметил, что вот у меня на стадии авторизации приложения только одно приложение предлагается разрешить.
Вероятно причина где-то там. Но как заставить запрашивать два приложения, второе "Просмотр метаданных файлов..." - непонятно.

Условно, подключение можно разделить на два этапа.
1. Включение нужных апи, в данном случае это Google Drive Api и Google Sheets Api.
2. Добавление разрешений или "областей действия", по английски вроде как это называется scopes.

В зависимости от того, какие разрешения включены, зависит что можно делать через апи. Сделано для того, чтобы не давать доступа больше чем надо.))

Судя по скринам выше, надо разблокировать это
50303


50301
У меня там разблокированы другие разрешения(нет замков), делалось не для доступа к таблицам через зенку, а под другие задачи.
 
  • Оценить
Реакции: Astraport
Добавление разрешений или "областей действия", по английски вроде как это называется scopes.
Именно так. И я мучил эти scopes несколько дней. Те что без замочков в основном, в разных комбинациях, потому что с замочками нужны какие-то подтверждения.
Оставим без обсуждения почему не в инструкциях, не в видео ТС нет никаких упоминаний про изменения этих областей и всё прекрасно работает и без них.
Я пытался составить URL примерно в таком формате:
https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id={-Variable.client_id-}&scope={-Variable.scope-}&redirect_uri={-Variable.uri-}
Но всегда при добавлении в URL более одного scope (пытался в основном через запятые типа https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive.file,https://www.googleapis.com/auth/drive
получал: Error: invalid_scope
 
Но всегда при добавлении в URL более одного scope (пытался в основном через запятые типа https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive.file,https://www.googleapis.com/auth/drive
получал: Error: invalid_scope
Попробуй через пробел.:-)
И добавляешь лишнее. scopes - это типа какими апи будет пользоваться твоя прога.
scope=https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive
А какие ты разрешения ей навключал при получении ключей, это увидишь когда будешь переходит по этому урлу и подтверждать запрос.

Да, и еще не забудь добавить в урл этот параметр - access_type=offline
If you are not using a client library, you need to set the access_type HTTP query parameter to offline when redirecting the user to Google's OAuth 2.0 server.
In that case, Google's authorization server returns a refresh token when you exchange an authorization code for an access token.
Then, if the access token expires (or at any other time), you can use a refresh token to obtain a new access token.
Дргуими словами когда протухнет access_token с помощью refresh_token его можно будет обновить.
 
  • Оценить
Реакции: Astraport
Попробуй через пробел.:-)
Спасибо, уже прогресс! Появились два чекбокса:

See, edit, create, and delete all of your Google Drive files

See, edit, create, and delete your spreadsheets in Google Drive

Но после их подтверждения снова непонятное окно с каким-то кодом, который неизвестно куда вставлять.
2020-02-18_14-04-38.png
 
Но после их подтверждения снова непонятное окно с каким-то кодом, который неизвестно куда вставлять.
Теперь надо отправить этот код, со своими апи ключами - clientId и clientSecret.
В ответ придет json, со всей нужной инфой.
C#:
Развернуть Свернуть Копировать
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 путь к файлу с апи ключами и дать нужные разрешения.
 
Последнее редактирование:
Ух, сработало! Токен получен. Спасибо огромное, квест выполнен, правда я уже забыл зачем мне эти чертовы таблицы понадобились))
UPD: Касаемо гугл таблиц в ZP это все делать не надо(запросы). По идее все должно делаться автоматом.
В том-то всё и дело, что я даже 7-ку специально поставил, но при загрузке json с секретами в настройках ZP вылезало виндовое окно - что-то типа не поддерживается платформа.
Какая именно платформа - непонятно. Может Windows 7 уже устарела.
 
Ух, сработало! Токен получен. Спасибо огромное, квест выполнен, правда я уже забыл зачем мне эти чертовы таблицы понадобились))

В том-то всё и дело, что я даже 7-ку специально поставил, но при загрузке json с секретами в настройках ZP вылезало виндовое окно - что-то типа не поддерживается платформа.
Какая именно платформа - непонятно. Может Windows 7 уже устарела.
C этого и стоило начинать. Надо было запостить скрин с ошибкой.))
 
  • Оценить
Реакции: Astraport
UPD: Касаемо гугл таблиц в ZP это все делать не надо(запросы). По идее все должно делаться автоматом.
Надо только получить апи ключи, вбить в настройках ZP путь к файлу с апи ключами и дать нужные разрешения
Все перемешалось в голове.
Есть опция при работе с таблицей "привязать к URL" и есть "Вставьте ссылку на Гугл Таблицу" в интерфейсе настройки Google-таблицы, в чем разница между ними?
Тогда я могу создать Гугл таблицу по АПИ и привязать ее соответствующим Табл-кубиком, не указывая ее в интерфейсе настройки Google-таблицы .
 
Еще один момент. Не удается "привязать к URL" таблицы с окончанием ссылки #gid=12345..., тогда как с окончанием просто ...edit привязывается.
 
Еще один момент. Не удается "привязать к URL" таблицы с окончанием ссылки #gid=12345..., тогда как с окончанием просто ...edit привязывается.
Ссылка таким образом выглядит?
https://docs.google.com/spreadsheets/d/abcdef/edit#gid=12345 (перед #gid обязательно должен быть edit)

Есть опция при работе с таблицей "привязать к URL" и есть "Вставьте ссылку на Гугл Таблицу" в интерфейсе настройки Google-таблицы, в чем разница между ними?
Никакой.
 
Благодарю за видео. Даже не знал, что зенка поддерживает гугл таблицы. Круто!

Только в 7 версии доступно, не круто! =(
 
Последнее редактирование:
Апну тему, чтобы новые не плодить.
Подключил API, но авторизация гугла отваливается через через несколько дней (5-7, точно не замерял).
приходится заходить в настройки зенно и переподключать тот же самый токен, опять давать разрешения.
Как исправить, чтобы не отваливалось?
 
  • Оценить
Реакции: mikhael84
Апну тему, чтобы новые не плодить.
Подключил API, но авторизация гугла отваливается через через несколько дней (5-7, точно не замерял).
приходится заходить в настройки зенно и переподключать тот же самый токен, опять давать разрешения.
Как исправить, чтобы не отваливалось?
Аналогичная проблема. Выдает ошибку в логах даже через 2-3 дня: "Ошибка выгрузки данных Google таблиц. Повторный запрос через 1 минуту. An error occurred while sending the request." Помогает только удаление и переподключение того же токена.

Но тут еще постоянно появялется ошибка в процессе подключения к токену на последнем шаге, которая перебрасывает на не рабочий "http://localhost:51649/authorize/?c... https://www.googleapis.com/auth/spreadsheets" вместо надписи как в инструкции "Received verification code. You may now close this window"
При этом в итоге гугл таблицы все-равно подключаются и работают после этой ошибки.
 
Аналогичная проблема. Выдает ошибку в логах даже через 2-3 дня: "Ошибка выгрузки данных Google таблиц. Повторный запрос через 1 минуту. An error occurred while sending the request." Помогает только удаление и переподключение того же токена.

Но тут еще постоянно появялется ошибка в процессе подключения к токену на последнем шаге, которая перебрасывает на не рабочий "http://localhost:51649/authorize/?code=4/0AX4XfWirELzqkWahD-oj6Ajiz0nwZh_L1h82mxzna4uGbidbyOOHFJmuazJgCc7XqUKa7g&scope=https://www.googleapis.com/auth/drive.metadata https://www.googleapis.com/auth/spreadsheets" вместо надписи как в инструкции "Received verification code. You may now close this window"
При этом в итоге гугл таблицы все-равно подключаются и работают после этой ошибки.

Такая же проблема, причем гугл-таблицы подключаются, все хорошо, какое-то количество строк корректно записывается, ошибок в логе нет, но затем высвечивается такая ошибка и запись строк на 1 минуту прекращается.
 
Аналогичная проблема. Выдает ошибку в логах даже через 2-3 дня: "Ошибка выгрузки данных Google таблиц. Повторный запрос через 1 минуту. An error occurred while sending the request." Помогает только удаление и переподключение того же токена.

Но тут еще постоянно появялется ошибка в процессе подключения к токену на последнем шаге, которая перебрасывает на не рабочий "http://localhost:51649/authorize/?code=4/0AX4XfWirELzqkWahD-oj6Ajiz0nwZh_L1h82mxzna4uGbidbyOOHFJmuazJgCc7XqUKa7g&scope=https://www.googleapis.com/auth/drive.metadata https://www.googleapis.com/auth/spreadsheets" вместо надписи как в инструкции "Received verification code. You may now close this window"
При этом в итоге гугл таблицы все-равно подключаются и работают после этой ошибки.
Такая же проблема, причем гугл-таблицы подключаются, все хорошо, какое-то количество строк корректно записывается, ошибок в логе нет, но затем высвечивается такая ошибка и запись строк на 1 минуту прекращается.
Посчитайте количество строк до ошибки и поставьте паузу на одну минуту в цикле. Так вы и на ошибку не нарвётесь и данные запишите.
Вы пользуетесь api для google таблиц. Логично, что у них есть ограничения на обращения к серверу. Иначе бы сервера постоянно падали.)
 
  • Оценить
Реакции: dr.reklam

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)