gifts2017

Авторизация OAuth 2.0 из 1С 8.2

Опубликовал Кирилл (queit) в раздел Программирование - Практика программирования

Доступ к функциям Google API с помощью авторизации OAuth 2.0

Возникла необходимость связать 1С и Google Calendar.

По мотивам статьи: 

http://pro1c.net/tips/%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-oauth-20-%D0%B8%D0%B7-1%D0%A1-82/

Пример был переделан на управляемые формы и добавлена возможность использовать прокси-сервер.

Основное отличие авторизации по протоколу OAuth 2.0 от обычной состоит в том, чтобы исключить получение авторизационной информации(логин, пароль) приложением. Вместо этого пользователь , самостоятельно авторизовавшись, выдает приложению разрешение на доступ к запрошенным областям данных учетной записи.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
GoogleCalendar.epf
.epf 10,72Kb
18.02.13
104
.epf 10,72Kb 104 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Роман Ложкин (webester) 24.02.13 09:05
Спасибо, в закладки, пригодится, в приведенном вами источнике говорится что автор не смог заставить 1с работать через ssl и заюзал com объект, как у вас с этим?
2. Кирилл (queit) 24.07.13 05:53
Так же как, ssl не взлетает. Причины скрыты очень глубоко и раскопать мне их не удалось.
3. Алексей Ситников (SiAl) 23.07.14 00:35
Спасибо.
Одно пожелание (после ознакомления с процедурой
ПолучитьЗначениеJSON
) - выучите регулярные выражения, очень упростится разбор текстов.
4. Кирилл (queit) 23.07.14 08:33
(3) SiAl, можно по подробнее. Пример можете привести?
5. Алексей Ситников (SiAl) 23.07.14 13:36
(4) queit, пример чего? Использования регулярных выражений? Я просто раньше тоже использовал функции 1С для работы с текстами, и получались огромные портянки вместо процедур. RegExp очень упрощает кодинг при парсинге текстов.
У меня вопрос еще по обработке.
Какая последовательность действии правильна? Я копирую Client id и Client secret, а они через секунду очищаются, я даже не успеваю нажать кнопку Авторизация. Искал в коде, но нет нигде операции присваивания значений (даже пустых) эти полям.
6. Кирилл (queit) 24.07.14 09:40
(5) SiAl, Ок, тогда по другому: я не шарю в резулярных выражениях, можете переписать функцию "ПолучитьЗначениеJSON" с использование рег.выражений? Буду рад ознакомиться с реализацией.

На счет того, что Client id и Client secret исчезают. В процедуре "ПриОткрытии" есть такая конструкция "ПодключитьОбработчикОжидания("ОбработкаОповещенияИзменения",2)" - применяется для прохождения 2-го этапа авторизации, вернее для получения кода доступа. Получается, что если за 2 секунды не набрал, то все. Можно время побольше поставить или как-то оптимизировать.
7. zyto (zyto) 13.11.15 15:42
Я правильно понимаю, что полученный маркер:

Маркер = Ответ.Получить("access_token");

Можно использовать для дальнейшей автоматической работы с гуглапи, и снова и снова его получать не нужно?
Или у него есть некий "срок жизни" (а-ля кукисы, которые живут от нескольких секунд до нескольких дней), и через некоторое время надо снова получать этот маркер?
8. Кирилл (queit) 13.11.15 21:11
(7) zyto, тайм-аут есть. Если какое-то время ничего не делать, то нужно снова получать.
9. zyto (zyto) 16.11.15 10:03
А есть какой-нибудь другой способ авторизации, что бы пользователю не нужно было каждый раз жать кнопку "Разрешить", т.е. что бы можно было выполнять некий код по расписанию, без участия пользователя.
Или это фантастика?
10. zyto (zyto) 16.11.15 10:17
По моим сугубо субъективным оценкам токен прожил около часа...
11. zyto (zyto) 16.11.15 10:28
В справке гугла есть упоминание про некую оффлайн авторизацию, и токен для обновления токена :)

https://developers.google.com/identity/protocols/OAuth2WebServer#offline

Кто-нибудь пробовал реализовывать такую авторизацию?
12. Кирилл (queit) 16.11.15 19:42
(9) zyto, как бы в этом и есть весь смысл двухступенчатой авторизации.
13. Кирилл (queit) 16.11.15 19:56
(11) zyto, такое пока не делал. Нет прикладной задачи пока :-)
14. В Золотухин (zolotukhin) 08.02.16 12:20
Возможно ли скачать эту обработку где-то еще?
15. Кирилл (queit) 08.02.16 19:24
(14) zolotukhin, могу на почту скинуть
zolotukhin; +1 Ответить 1
16. В Золотухин (zolotukhin) 14.02.16 00:05
(15) queit, очень бы выручили, огромное спасибо. vasilii.zolotukhin@gmail.com
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа