Внешние аутентификации¶
Хранение параметров внешних аутентификаций в данный момент поддерживает
- Хранение пары логин-пароль для использования в url, требующих аутентификации.
- Google Analytics для обеспечения автоматического пополнения Рядов Данных статистикой из Google Analytics
- Google Big Data / Google Big Query для получения данных импорта и списков выпуска рассылки, и для записи событий callback
Список внешних аутентификаций¶
{
"action" : "authext.list"
-- параметры фильтрации, должен быть хотя бы один параметр
--
-- если выбрана последняя порция списка то ответ содержит "last_page" : 1
--
-- доступны поля
--
-- authext.id -- "идентификатор внешней аутентификации"
-- authext.type -- "тип внешней аутентификации, число"
-- authext.login -- "логин внешней аутентификации"
-- authext.status -- "статус внешней аутентификации" 0 - ошибочная/отключённая, 1 - активная
-- authext.reltype -- число
-- authext.relref -- число
--
,"filter" : [ фильтр в синтаксисе stat.uni ]
,"order" : [ сортировка ответа в синтаксисе stat.uni ]
,"skip" : количество пропускаемых записей от начала списка -- по умолчанию 0
,"first" : количество выбираемых записей после skip -- по умолчанию 50, не более 50
}
ответ
{
<общие поля>
,"list" : [
{
"id" : идентификатор внешней аутентификации
,"type" : "тип внешней аутентификации"
,"login" : "логин внешней аутентификации"
,"reltype" : ...
,"relref" : ...
}
...
]
}
Чтение внешней аутентификации¶
Поля хранящие собственно данные для аутентификации прочесть нельзя.
ответ
{
<общие поля>
,"obj" : {
"id" : идентификатор внешней аутентификации
,"type" : "тип внешней аутентификации"
,"login" : "логин внешней аутентификации"
,"reltype" : ...
,"relref" : ...
,"status" : "статус внешней аутентификации" -- 0 - ошибочная/отключённая, 1 - активная
-- для Telegram
,"param" : {
"id" : номер бота в telegram
,"username" : "username бота" -- системное имя бота
,"first_name" : "название бота" -- Отображаемое название бота
,"supports_inline_queries" : 0|1 -- бот поддерживает встроенные запросы
,"can_read_all_group_messages" : 0|1 -- для бота отключен приватный режим
,"can_join_groups" : 0|1 -- можно ли бота приглашать в группы
,"proxy.url" : "url для проксирования запросов от Telegram"
,"reply_disabled" : 0|1 -- включен ли запрет ответов нашего бота
,"telegram.webhook" : 0|1 -- включен ли приём колбэков от телеграма.
,"webhook.url" : "url приёма колбэк данных сервером sendsay" -- генерируется автоматически
,"webhook.error" : "сообщение об ошибке" -- ошибка АПИ телеграма при запросах проверки, установки или удаления webhook.
-- webhook.error удаляется при последующих успешных ответах.
,"webhook.url.previous" : "прежний url" -- если на момент установки webhook от sendsay
-- в настройках телеграма уже стоял другой webhook, то его url сохраняется
}
-- для MAX
,"param" : {
-- Настраиваемые через authext параметры
"proxy.url" : "url для проксирования запросов от MAX"
,"reply_disabled" : 0|1 -- включен ли запрет ответов нашего бота, кроме триггерных команд
,"webhook" : 0|1 -- включен ли приём колбэков от MAX
-- Остальные параметры
,"webhook.url" : "url приёма колбэк данных сервером sendsay" -- генерируется автоматически
,"id" : номер бота в MAX
,"username" : "username бота" -- системное имя бота
,"first_name" : "название бота" -- Отображаемое название бота
,"last_name" : "фамилия бота"
,"commands" : "команды, установленные для бота в MAX"
,"avatar_url" : "ссылка на аватарку бота"
,"full_avatar_url" : "ссылка на аватарку бота в максимальном разрешении"
}
-- для TDE
,"param" : {
"ftp": { "user" :"логин" }
,"api": { "user" :"логин" }
}
-- для pushapp
,"param" :
{
,"auth": {
"fcm" :
{
"project_id": "FIREBASE_PROJECT_ID"
}
,"hms" :
{
"client_id" : "app_id из HMS"
}
,"apns" :
{
"topic" : "topic приложения iOS"
,"production" : false | true -- использовании апп в режиме разработки (false) или в рабочем режиме (true)
,"key_type" : "pem" | "p12" | "p8" -- тип ключа
,"key_id" : "key_id" -- только для "key_type": "p8"
,"team_id" : "team_id" -- только для "key_type": "p8"
}
}
,"ios_via_fcm" : 0|1 -- отправка в iOS через fcm при работе с "сырым" мобильным api
-- при использовании SDK игнорируется и считается что apns
,"sdk_token" : "токен аутентификации"
,"sdk_contact_key" : "название ключа в котором передаётся адрес контакта"
,"sdk_contact_addr_type" : email|msisdn|viber|csid|push|vk|tg|vknotify|pushapp|max
}
--
}
}
Создание внешней аутентификации¶
{
"action" : "authext.create"
,"type" : "тип внешней аутентификации"
-- в данный момент поддерживается:
-- 0 - пара логин-пароль
-- 8 - Google Analytics
-- 9 - Bitrix24
-- 10 - Google Big Data / Google Big Query
-- 11 - amoCRM
-- 14 - webpush
-- 15 - emailonacid
-- 16 - pushapp
-- 17 - telegram
-- 21 - TDE
-- 23 - MAX
,"login" : "название внешней аутентификации" -- просто некая уникальная метка (должна быть пустой или отсутствовать для telegram)
,"status" : "статус внешней аутентификации" -- не обязательно, по умолчанию - 1
-- 0 - ошибочная/отключённая, 1 - активная
,"reltype" : ...
,"relref" : ...
-- для пары логин-пароль
,"token" : "логин:пароль"
-- для Google Big Data / Google Big Query
-- Зарегистрируйтесь в Google, создайте проект в Google Cloud Platform и создайте сервисный аккаунт со ограниченными правами специально для sendsay
-- Сервисный аккаунт - специальный гугловый аккаунт для работы с конкретным проектом в рамках заданных прав. Подробнее о нём читайте в https://cloud.google.com/iam/docs/service-accounts?hl=en_US
-- После этого нужно выгрузить приватный ключ сервисного аккаунта в формате json. Все данные будут в одноименных полях - client_email, private_key, project_id - для использования в данном вызове.
,"client_email": "XXXXXXXXX@developer.gserviceaccount.com" -- почтовый адрес сервисного аккаунта
,"project_id": "XXXX" -- код проекта
,"private_key": "-----BEGIN PRIVATE KEY-----XXXXXXX-----END PRIVATE KEY-----\n" -- приватный ключ сервисного аккаунта
,"token": "..." - что угодно, скажем, ещё раз адрес сервисного аккаунта
-- для Google Analytics
,"token" : "refresh token"
-- для amoCRM
,"user_login": ".....", -- логин (email) пользователя amoCRM
,"api_key": "......", -- несменяемый api-ключ пользователя (из профиля amoCRM)
,"subdomain": "new5991bf813bceb" -- субдомен действующей amoCRM
,"token": "....", - что угодно, скажем, ещё раз subdomain
-- для Bitrix24
-- получение необходимых данных требует веб-диалога с пользователем Bitrix24 и поэтому не может быть тут описано
-- воспользуйтесь веб-интерфейсом Sendsay для создания данной внешней аутентификации
-- для EmailOnAcid
."login":"eoa"
,"token":"Basic значение-аутентификации" -- значение аутентификации это закодированная в base64 строка "<api_key_emailonacid>:<account_password_for_emailonacid>"
-- для Telegram
,"token":"....." -- строка, полученный клиентом токен при регистрации бота
,"telegram.webhook": 0|1 -- необходимость регистрации веб-хука системы в Telegram
-- при указании в authext.set регистрирует или убирает регистрация веб-хука системы в Telegram
,"reply_disabled" : 0|1 -- включен ли запрет ответов нашего бота. не обязательно
,"proxy.url" : "url для просирования запросов от Telegram" -- не обязательно
-- для удаления укажите пустое значение в authext.set
-- проверяется доступность ссылки методом POST
-- наличие ошибки - прерывается создание внешней аутентификации
-- для MAX
,"token":"....." -- строка, полученный клиентом токен при регистрации бота
,"webhook": 0|1 -- необходимость регистрации нашего веб-хука системы в MAX
-- при указании в authext.create и authext.set регистрирует или убирает регистрацию веб-хука системы в MAX
,"reply_disabled" : 0|1 -- включен ли запрет ответов нашего бота. не обязательно
,"proxy.url" : "url для проксирования запросов от MAX" -- не обязательно
-- для удаления укажите пустое значение в authext.set
-- проверяется доступность ссылки методом POST
-- наличие ошибки - прерывается создание внешней аутентификации
-- для TDE
"api": { "user" :"логин" , "password" :"пароль" }
-- для pushapp
"auth": { -- данные аутентификации для Android, iOS и Huawei
"fcm" :
{
"project_id": "FIREBASE_PROJECT_ID"
,"key_json": "FIREBASE_API_KEY_JSON"
}
,"hms" :
{
"client_id" : "app_id из HMS"
,"client_secret" : "secret key, указанный в HMS"
}
,"apns" :
{
"topic" : "topic приложения iOS"
,"production" : 0|1 -- использовании апп в режиме разработки (0) или в рабочем режиме (1)
,"key_type" : "pem" | "p12" | "p8" -- тип ключа
,"key" : "сертификат или authkey в Base64"
,"key_id" : "key_id" -- только для "key_type": "p8"
,"team_id" : "team_id" -- только для "key_type": "p8"
,"password" : "пароль к сертификату" -- кроме "key_type": "p8"
}
}
-- настройка способа отправки в iOS при работе с "сырым" мобильным api
-- при использовании SDK игнорируется и считается что apns
,"ios_via_fcm" : 0|1 -- не обязательно
-- 0 -- через apns, по умолчанию.
-- 1 -- через apns
-- настройки для использования мобильного SDK Exponea
-- параметр sdk_token генерируется автоматически и доступен через autext.get
,"sdk_contact_key" : строка -- название ключа в котором передаётся адрес контакта
-- email, телефон или ещё какой-то ваш идентификатор клиента залогинившегося в вашем приложении
,"sdk_contact_addr_type" : email|msisdn|viber|csid|push|vk|tg|vknotify|pushapp|max -- тип контакта
}
ответ
{
<общие поля>
,"id" : идентификатор созданной внешней аутентификации
-- для Telegram
,"login" : "username бота",
,"bot_name" : "имя бота"
-- для MAX
,"login" : "username бота",
,"bot_name" : "имя бота"
}
Изменение внешней аутентификации¶
Обновляются только указанные в запросе поля
{
"action" : "authext.set"
,"id" : идентификатор внешней аутентификации
,"status" : "статус внешней аутентификации" -- не обязательно
-- 0 - ошибочная/отключённая, 1 - активная
,"reltype" : ...
,"relref" : ...
... прочие поля специфические для используемого типа аутентификации ...
-- особенность pushapp
-- параметр sdk_token генерируется автоматически и не может быть произвольно изменйн
-- однако возможно указание вот таком варианте что бы sdk_token был перегенирирован в новое значение
,"sdk_token" : "_RESET_"
}
ответ
Удаление внешней аутентификации¶
ответ
Информация об аутентификации в Google Analitics¶
ответ