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

Igorii

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

 
Последнее редактирование:

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
В конце, что-то заглючила Зенка, перестала подтягивать данные
Нет никакого глюка, если изменения в таблице были произведены не из ZennoPoster, потребуется несколько минут для её обновления.
Чтобы не ждать, можно использовать кнопку "Перезагрузить таблицу".

 
  • Спасибо
Реакции: Sergodjan

Igorii

Client
Регистрация
21.02.2015
Сообщения
371
Благодарностей
297
Баллы
63
Нет никакого глюка, если изменения в таблице были произведены не из ZennoPoster, потребуется несколько минут для её обновления.
Чтобы не ждать, можно использовать кнопку "Перезагрузить таблицу".
Кнопку жал с 6:20, на видео видно, не обновлялась. Может у меня комп тормозил, из-за записи видео, хз
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Какому принципу Зенка генерирует URL при нажатии зеленой кнопки "Подключить"?
 
Регистрация
12.07.2014
Сообщения
916
Благодарностей
373
Баллы
63
Ребят, а для чего можно прикрутить Гтаблицы?
Выгрузки данных?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Ребят, а для чего можно прикрутить Гтаблицы?
Выгрузки данных?
это общие таблицы получается. с любого сервака легкий доступ к данным. если БД локально еще более менее легко поднять и можно юзать, то администрировать и давать доступ к сетевой базе, да еще спрятавшейся за NAT с файрволом и динамическим IP.... ну тут надо много знаний по администрированию системы. а гугл таблицами все просто.
а еще да, легкий выгруз для клиента. напарсил данных, сформировал отчет и отправил ссылку клиенту. ну это я очень приближенно :-)
 
  • Спасибо
Реакции: Festem и Сибиряк

tatarin

Client
Регистрация
28.10.2012
Сообщения
805
Благодарностей
137
Баллы
43
Все равно для нескольких копий зеннопостера их не получиться использовать из-за задержек, данные будут теряться! Так что я для себя смысла в них не вижу!
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Все равно для нескольких копий зеннопостера их не получиться использовать из-за задержек, данные будут теряться! Так что я для себя смысла в них не вижу!
не норм. как раз вести общую базу. я для себя давно уже завел правило разделять таблицы на хранящие данные и таблицы постоянно обновляющиеся. при крахе, зенки, системы таблицы хрянящие данные вообще не страдают. а те которые перезаписываются автоматом пересоздаются если обнаруживается что они недоступны. так и гугл будет. в гугле будут общие базы, а работать боты будут с локальными. результат будет сваливаться в отдельные гугл таблицы . если грамотно подойти в самом начале разработки расширяемой системы, то проблем не будет.
 
  • Спасибо
Реакции: bizzon и Сибиряк

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Юзать как примитивный дашборт, строить графики доходов))
 

tatarin

Client
Регистрация
28.10.2012
Сообщения
805
Благодарностей
137
Баллы
43

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Возвращаясь к теме. Да, я так и не смог настроить доступ по АПИ к таблицам Гугла) 3 года назад смог и даже других учил как это делать.
Пробовал с разных аккаунтов, в строгом соответствии с инструкцией (да и по сути это не сервер настраивать, проще некуда), и даже с этим видео, изучил там всё, но безрезультатно.
Уже стало очень интересно найти причину появления проблемы на которую я убил не один час.
Заметил, что вот у меня на стадии авторизации приложения только одно приложение предлагается разрешить.
Вероятно причина где-то там. Но как заставить запрашивать два приложения, второе "Просмотр метаданных файлов..." - непонятно.
 

Вложения

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Возвращаясь к теме. Да, я так и не смог настроить доступ по АПИ к таблицам Гугла) 3 года назад смог и даже других учил как это делать.
Пробовал с разных аккаунтов, в строгом соответствии с инструкцией (да и по сути это не сервер настраивать, проще некуда), и даже с этим видео, изучил там всё, но безрезультатно.
Уже стало очень интересно найти причину появления проблемы на которую я убил не один час.
Заметил, что вот у меня на стадии авторизации приложения только одно приложение предлагается разрешить.
Вероятно причина где-то там. Но как заставить запрашивать два приложения, второе "Просмотр метаданных файлов..." - непонятно.
Условно, подключение можно разделить на два этапа.
1. Включение нужных апи, в данном случае это Google Drive Api и Google Sheets Api.
2. Добавление разрешений или "областей действия", по английски вроде как это называется scopes.

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

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


50301
У меня там разблокированы другие разрешения(нет замков), делалось не для доступа к таблицам через зенку, а под другие задачи.
 
  • Спасибо
Реакции: Astraport

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Добавление разрешений или "областей действия", по английски вроде как это называется 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
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Но всегда при добавлении в 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

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Попробуй через пробел.:-)
Спасибо, уже прогресс! Появились два чекбокса:

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
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Но после их подтверждения снова непонятное окно с каким-то кодом, который неизвестно куда вставлять.
Теперь надо отправить этот код, со своими апи ключами - 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 путь к файлу с апи ключами и дать нужные разрешения.
 
Последнее редактирование:

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Ух, сработало! Токен получен. Спасибо огромное, квест выполнен, правда я уже забыл зачем мне эти чертовы таблицы понадобились))
UPD: Касаемо гугл таблиц в ZP это все делать не надо(запросы). По идее все должно делаться автоматом.
В том-то всё и дело, что я даже 7-ку специально поставил, но при загрузке json с секретами в настройках ZP вылезало виндовое окно - что-то типа не поддерживается платформа.
Какая именно платформа - непонятно. Может Windows 7 уже устарела.
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Ух, сработало! Токен получен. Спасибо огромное, квест выполнен, правда я уже забыл зачем мне эти чертовы таблицы понадобились))

В том-то всё и дело, что я даже 7-ку специально поставил, но при загрузке json с секретами в настройках ZP вылезало виндовое окно - что-то типа не поддерживается платформа.
Какая именно платформа - непонятно. Может Windows 7 уже устарела.
C этого и стоило начинать. Надо было запостить скрин с ошибкой.))
 
  • Спасибо
Реакции: Astraport

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
но при загрузке json с секретами в настройках ZP вылезало виндовое окно - что-то типа не поддерживается платформа.
Надо было запостить скрин с ошибкой.))
Благо, проблема с платформой тоже решилась :az:
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
UPD: Касаемо гугл таблиц в ZP это все делать не надо(запросы). По идее все должно делаться автоматом.
Надо только получить апи ключи, вбить в настройках ZP путь к файлу с апи ключами и дать нужные разрешения
Все перемешалось в голове.
Есть опция при работе с таблицей "привязать к URL" и есть "Вставьте ссылку на Гугл Таблицу" в интерфейсе настройки Google-таблицы, в чем разница между ними?
Тогда я могу создать Гугл таблицу по АПИ и привязать ее соответствующим Табл-кубиком, не указывая ее в интерфейсе настройки Google-таблицы .
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
Еще один момент. Не удается "привязать к URL" таблицы с окончанием ссылки #gid=12345..., тогда как с окончанием просто ...edit привязывается.
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Еще один момент. Не удается "привязать к URL" таблицы с окончанием ссылки #gid=12345..., тогда как с окончанием просто ...edit привязывается.
Ссылка таким образом выглядит?
https://docs.google.com/spreadsheets/d/abcdef/edit#gid=12345 (перед #gid обязательно должен быть edit)

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

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
Благодарю за видео. Даже не знал, что зенка поддерживает гугл таблицы. Круто!

Только в 7 версии доступно, не круто! =(
 
Последнее редактирование:

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
  • Спасибо
Реакции: Mikhail B.

braind

Client
Регистрация
10.10.2012
Сообщения
119
Благодарностей
12
Баллы
18
Апну тему, чтобы новые не плодить.
Подключил API, но авторизация гугла отваливается через через несколько дней (5-7, точно не замерял).
приходится заходить в настройки зенно и переподключать тот же самый токен, опять давать разрешения.
Как исправить, чтобы не отваливалось?
 
  • Спасибо
Реакции: mikhael84

mikhael84

Client
Регистрация
17.09.2019
Сообщения
1
Благодарностей
0
Баллы
1
Апну тему, чтобы новые не плодить.
Подключил API, но авторизация гугла отваливается через через несколько дней (5-7, точно не замерял).
приходится заходить в настройки зенно и переподключать тот же самый токен, опять давать разрешения.
Как исправить, чтобы не отваливалось?
Аналогичная проблема. Выдает ошибку в логах даже через 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"
При этом в итоге гугл таблицы все-равно подключаются и работают после этой ошибки.
 

dr.reklam

Client
Регистрация
02.06.2020
Сообщения
64
Благодарностей
15
Баллы
8
Аналогичная проблема. Выдает ошибку в логах даже через 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 минуту прекращается.
 

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
549
Благодарностей
1 130
Баллы
93
Аналогичная проблема. Выдает ошибку в логах даже через 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

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