You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-11-25 22:12:29 +02:00
1288 lines
77 KiB
Plaintext
1288 lines
77 KiB
Plaintext
// OneScript: ./OInt/core/Modules/OPI_GreenAPI.os
|
|
// Lib: Green API
|
|
// CLI: greenapi
|
|
// Keywords: greenapi, whatsapp
|
|
|
|
// MIT License
|
|
|
|
// Copyright (c) 2023-2025 Anton Tsitavets
|
|
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
// of this software and associated documentation files (the "Software"), to deal
|
|
// in the Software without restriction, including without limitation the rights
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
// furnished to do so, subject to the following conditions:
|
|
|
|
// The above copyright notice and this permission notice shall be included in all
|
|
// copies or substantial portions of the Software.
|
|
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
// SOFTWARE.
|
|
|
|
// https://github.com/Bayselonarrend/OpenIntegrations
|
|
|
|
// BSLLS:Typo-off
|
|
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
|
// BSLLS:IncorrectLineBreak-off
|
|
// BSLLS:NumberOfOptionalParams-off
|
|
// BSLLS:UsingServiceTag-off
|
|
// BSLLS:LineLength-off
|
|
// BSLLS:UsingSynchronousCalls-off
|
|
// BSLLS:MagicNumber-off
|
|
|
|
//@skip-check module-structure-top-region
|
|
//@skip-check module-structure-method-in-regions
|
|
//@skip-check wrong-string-literal-content
|
|
//@skip-check method-too-many-params
|
|
//@skip-check bsl-legacy-check-string-literal
|
|
|
|
#Область ПрограммныйИнтерфейс
|
|
|
|
#Область Аккаунт
|
|
|
|
// Сформировать параметры доступа
|
|
// Формирует структуру основных авторизационных данных
|
|
//
|
|
// Примечание:
|
|
// Подробнее в документации API: [Получить параметры доступа к инстансу](@green-api.com/docs/before-start/#parameters)
|
|
//
|
|
// Параметры:
|
|
// ApiUrl - Строка - Ссылка на хост API - api
|
|
// MediaUrl - Строка - Ссылка на хост API для отправки файлов - media
|
|
// IdInstance - Строка - Уникальный номер инстанса - id
|
|
// ApiTokenInstance - Строка - Ключ доступа инстанса - token
|
|
//
|
|
// Возвращаемое значение:
|
|
// Структура - Структура параметров доступа
|
|
Функция СформироватьПараметрыДоступа(Знач ApiUrl, Знач MediaUrl, Знач IdInstance, Знач ApiTokenInstance) Экспорт
|
|
|
|
Строка_ = "Строка";
|
|
|
|
Параметры = Новый Структура;
|
|
OPI_Инструменты.ДобавитьПоле("apiUrl" , ApiUrl , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("mediaUrl" , MediaUrl , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("idInstance" , IdInstance , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("apiTokenInstance", ApiTokenInstance, Строка_, Параметры);
|
|
|
|
Возврат Параметры;
|
|
|
|
КонецФункции
|
|
|
|
// Получить информацию об аккаунте
|
|
// Получает информацию об аккаунте
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [GetWaSettings](@green-api.com/docs/api/account/GetWaSettings/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьИнформациюОбАккаунте(Знач ПараметрыДоступа) Экспорт
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "getWaSettings");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Получить настройки инстанса
|
|
// Получает текущие настройки инстанса
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [GetSettings](@green-api.com/docs/api/account/GetSettings/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьНастройкиИнстанса(Знач ПараметрыДоступа) Экспорт
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "getSettings");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Установить настройки инстанса
|
|
// Устанавливает настройки инстанса
|
|
//
|
|
// Примечание
|
|
// Метод в документации API: [SetSettings](@green-api.com/docs/api/account/SetSettings/)
|
|
//
|
|
// Параметры:
|
|
// Настройки - Структура Из КлючИЗначение - Настройки инстанса. См. ПолучитьСтруктуруНастроекИнстанса - settings
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция УстановитьНастройкиИнстанса(Знач Настройки, Знач ПараметрыДоступа) Экспорт
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ПараметрыДоступа);
|
|
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Настройки);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "setSettings");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Настройки);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Получить состояние инстанса
|
|
// Получает состояние инстанса
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [GetStateInstance](@green-api.com/docs/api/account/GetStateInstance/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьСостояниеИнстанса(Знач ПараметрыДоступа) Экспорт
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "getStateInstance");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Перезапустить инстанс
|
|
// Перезапускает инстанс
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [Reboot](@green-api.com/docs/api/account/Reboot/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПерезапуститьИнстанс(Знач ПараметрыДоступа) Экспорт
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "reboot");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Разлогинить инстанс
|
|
// Разлогинивает инстанс
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [Logout](@green-api.com/docs/api/account/Logout/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция РазлогинитьИнстанс(Знач ПараметрыДоступа) Экспорт
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "logout");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Получить QR
|
|
// Получает QR-код авторизации
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [QR](@green-api.com/docs/api/account/QR/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
//
|
|
// Возвращаемое значение:
|
|
// ДвоичныеДанные, Соответствие Из КлючИЗначение - QR код или информация об ошибке
|
|
Функция ПолучитьQR(Знач ПараметрыДоступа) Экспорт
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "qr");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL);
|
|
|
|
Попытка
|
|
|
|
Если Ответ["type"] = "qrCode" Тогда
|
|
Результат = Base64Значение(Ответ["message"]);
|
|
КонецЕсли;
|
|
|
|
Исключение
|
|
Результат = Ответ;
|
|
КонецПопытки;
|
|
|
|
Возврат Результат;
|
|
|
|
КонецФункции
|
|
|
|
// Получить код авторизации
|
|
// Получает код авторизации для связи по номеру телефона
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [GetAuthorizationCode](@green-api.com/docs/api/account/GetAuthorizationCode/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// НомерТелефона - Строка, Число - Номер телефона в международном формате без + и 00 - phone
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьКодАвторизации(Знач ПараметрыДоступа, Знач НомерТелефона) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("phoneNumber", НомерТелефона, "Число", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "getAuthorizationCode");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Установить картинку профиля
|
|
// Устанавливает новую картинку профиля
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [SetProfilePicture](@green-api.com/docs/api/account/SetProfilePicture/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// Картинка - ДвоичныеДанные, Строка - Картинка профиля - picture
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция УстановитьКартинкуПрофиля(Знач ПараметрыДоступа, Знач Картинка) Экспорт
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
|
|
|
|
СоответствиеКартинки = Новый Соответствие();
|
|
СоответствиеКартинки.Вставить("file|file.jpg", Картинка);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "setProfilePicture");
|
|
Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , СоответствиеКартинки);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Архивировать чат
|
|
// Архивирует выбранный чат
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [ArchiveChat](@green-api.com/docs/api/service/archiveChat/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - ID чата для архивации - chat
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция АрхивироватьЧат(Знач ПараметрыДоступа, Знач IDЧата) Экспорт
|
|
|
|
Возврат УправлениеАрхивациейЧата(ПараметрыДоступа, IDЧата, Истина);
|
|
|
|
КонецФункции
|
|
|
|
// Разархивировать чат
|
|
// Разархивирует выбранный чат
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [UnarchiveChat](@green-api.com/docs/api/service/unarchiveChat/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - ID чата для разархивации - chat
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция РазархивироватьЧат(Знач ПараметрыДоступа, Знач IDЧата) Экспорт
|
|
|
|
Возврат УправлениеАрхивациейЧата(ПараметрыДоступа, IDЧата, Ложь);
|
|
|
|
КонецФункции
|
|
|
|
// Получить структуру настроек инстанса
|
|
// Получает шаблон структуры для установки настроек инстанса
|
|
//
|
|
// Параметры:
|
|
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
|
|
//
|
|
// Возвращаемое значение:
|
|
// Структура Из КлючИЗначение - Структура настроек инстанса
|
|
Функция ПолучитьСтруктуруНастроекИнстанса(Знач Пустая = Ложь) Экспорт
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
|
|
|
|
СтруктураНастроек = Новый Структура;
|
|
|
|
СтруктураНастроек.Вставить("webhookUrl" , "<URL для отправки уведомлений>");
|
|
СтруктураНастроек.Вставить("webhookUrlToken" , "<токен для доступа к вашему серверу уведомлений, если требуется>");
|
|
СтруктураНастроек.Вставить("delaySendMessagesMilliseconds" , "<интервал отправки сообщений в миллисекундах>");
|
|
СтруктураНастроек.Вставить("markIncomingMessagesReaded" , "<отмечать входящие сообщения прочитанными: yes, no>");
|
|
СтруктураНастроек.Вставить("markIncomingMessagesReadedOnReply", "<отмечать входящие сообщения прочитанными при отправке сообщения в чат: yes, no>");
|
|
СтруктураНастроек.Вставить("outgoingWebhook" , "<получать уведомления о статусах отправки/доставки/прочтении исходящих сообщений: yes, no>");
|
|
СтруктураНастроек.Вставить("outgoingMessageWebhook" , "<получать уведомления о сообщениях, отправленных с телефона: yes, no>");
|
|
СтруктураНастроек.Вставить("outgoingAPIMessageWebhook" , "<получать уведомления о сообщениях, отправленных через API: yes, no>");
|
|
СтруктураНастроек.Вставить("stateWebhook" , "<получать уведомления об изменении состояния авторизации инстанса: yes, no>");
|
|
СтруктураНастроек.Вставить("incomingWebhook" , "<получать уведомления о входящих сообщениях и файлах: yes, no>");
|
|
СтруктураНастроек.Вставить("deviceWebhook" , "<получать уведомления об устройстве (телефоне) и уровне заряда батареи: yes, no>");
|
|
СтруктураНастроек.Вставить("keepOnlineStatus" , "<выставляет статус 'В сети' для вашего аккаунта>");
|
|
СтруктураНастроек.Вставить("pollMessageWebhook" , "<получать уведомления о создании опроса и голосовании в опросе: yes, no>");
|
|
СтруктураНастроек.Вставить("incomingBlockWebhook" , "<получать уведомления о добавлении чата в список заблокированных контактов: yes, no>");
|
|
СтруктураНастроек.Вставить("incomingCallWebhook" , "<получать уведомления о статусах входящего звонка: yes, no>");
|
|
СтруктураНастроек.Вставить("editedMessageWebhook" , "<получать уведомления о факте того, что сообщение было отредактировано: yes, no>");
|
|
СтруктураНастроек.Вставить("deletedMessageWebhook" , "<получать уведомления о факте того, что сообщение было удалено: yes, no>");
|
|
|
|
Если Пустая Тогда
|
|
СтруктураНастроек = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураНастроек);
|
|
КонецЕсли;
|
|
|
|
//@skip-check constructor-function-return-section
|
|
Возврат СтруктураНастроек;
|
|
|
|
КонецФункции
|
|
|
|
#КонецОбласти
|
|
|
|
#Область УправлениеГруппами
|
|
|
|
// Получить информацию о группе
|
|
// Получает данные группового чата
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [GetGroupData](@green-api.com/docs/api/groups/GetGroupData/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDГруппы - Строка - Идентификатор группового чата - group
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьИнформациюОГруппе(Знач ПараметрыДоступа, Знач IDГруппы) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("groupId", IDГруппы, "Строка", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "getGroupData");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Создать группу
|
|
// Создает новый групповой чат
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [CreateGroup](@green-api.com/docs/api/groups/CreateGroup/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// Имя - Строка - Наименование группового чата - name
|
|
// Участники - Массив Из Строка - Массив участников чата - members
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция СоздатьГруппу(Знач ПараметрыДоступа, Знач Имя, Знач Участники = Неопределено) Экспорт
|
|
|
|
Если Не ЗначениеЗаполнено(Участники) Тогда
|
|
Участники = Новый Массив;
|
|
КонецЕсли;
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("groupName", Имя , "Строка" , Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("chatIds" , Участники, "Коллекция", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "createGroup");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Изменить имя группы
|
|
// Изменяет имя существующей группы
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [UpdateGroupName](@green-api.com/docs/api/groups/UpdateGroupName/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDГруппы - Строка - Идентификатор группового чата - group
|
|
// Имя - Строка - Новое наименование группового чата - name
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ИзменитьИмяГруппы(Знач ПараметрыДоступа, Знач IDГруппы, Знач Имя) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("groupId" , IDГруппы, "Строка", Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("groupName", Имя , "Строка", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "updateGroupName");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Добавить участника в группу
|
|
// Добавляет участника в групповой чат
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [AddGroupParticipant](@green-api.com/docs/api/groups/AddGroupParticipant/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDГруппы - Строка - Идентификатор группового чата - group
|
|
// IDПользователя - Строка - ID пользователя для добавления - user
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ДобавитьУчастникаВГруппу(Знач ПараметрыДоступа, Знач IDГруппы, Знач IDПользователя) Экспорт
|
|
|
|
Ответ = ДействиеСУчастникомГруппы(ПараметрыДоступа, IDГруппы, IDПользователя, "addGroupParticipant");
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Исключить участника группы
|
|
// Исключает участника из группы
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [RemoveGroupParticipant](@green-api.com/docs/api/groups/RemoveGroupParticipant/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDГруппы - Строка - Идентификатор группового чата - group
|
|
// IDПользователя - Строка - ID пользователя для добавления - user
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ИсключитьУчастникаГруппы(Знач ПараметрыДоступа, Знач IDГруппы, Знач IDПользователя) Экспорт
|
|
|
|
Ответ = ДействиеСУчастникомГруппы(ПараметрыДоступа, IDГруппы, IDПользователя, "removeGroupParticipant");
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Назначить права администратора
|
|
// Назначает пользователя администратором группы
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [SetGroupAdmin](@green-api.com/docs/api/groups/SetGroupAdmin/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDГруппы - Строка - Идентификатор группового чата - group
|
|
// IDПользователя - Строка - ID пользователя для добавления - user
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция НазначитьПраваАдминистратора(Знач ПараметрыДоступа, Знач IDГруппы, Знач IDПользователя) Экспорт
|
|
|
|
Ответ = ДействиеСУчастникомГруппы(ПараметрыДоступа, IDГруппы, IDПользователя, "setGroupAdmin");
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Отозвать права администратора
|
|
// Отзывает права администратора у пользователя
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [RemoveAdmin](@green-api.com/docs/api/groups/RemoveAdmin/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDГруппы - Строка - Идентификатор группового чата - group
|
|
// IDПользователя - Строка - ID пользователя для добавления - user
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ОтозватьПраваАдминистратора(Знач ПараметрыДоступа, Знач IDГруппы, Знач IDПользователя) Экспорт
|
|
|
|
Ответ = ДействиеСУчастникомГруппы(ПараметрыДоступа, IDГруппы, IDПользователя, "removeAdmin");
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Покинуть группу
|
|
// Производит выход текущего аккаунта из группового чата
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [LeaveGroup](@green-api.com/docs/api/groups/LeaveGroup/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDГруппы - Строка - Идентификатор группового чата - group
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПокинутьГруппу(Знач ПараметрыДоступа, Знач IDГруппы) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("groupId", IDГруппы, "Строка", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "leaveGroup");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Установить картинку группы
|
|
// Устанавливает картинку группового чата
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [SetGroupPicture](@green-api.com/docs/api/groups/SetGroupPicture/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDГруппы - Строка - Идентификатор группового чата - group
|
|
// Картинка - ДвоичныеДанные, Строка - Картинка профиля - picture
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция УстановитьКартинкуГруппы(Знач ПараметрыДоступа, Знач IDГруппы, Знач Картинка) Экспорт
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("groupId", IDГруппы, "Строка", Параметры);
|
|
|
|
СоответствиеКартинки = Новый Соответствие();
|
|
СоответствиеКартинки.Вставить("file|file.jpg", Картинка);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "setGroupPicture");
|
|
Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, СоответствиеКартинки);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ОтправкаСообщений
|
|
|
|
// Отправить текстовое сообщение
|
|
// Отправляет текстовое сообщение в выбранный чат
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [SendMessage](@green-api.com/docs/api/sending/SendMessage/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// Текст - Строка - Текст сообщения - text
|
|
// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ОтправитьТекстовоеСообщение(Знач ПараметрыДоступа, Знач IDЧата, Знач Текст, Знач IDЦитируемого = "") Экспорт
|
|
|
|
Строка_ = "Строка";
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("message" , Текст , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого, Строка_, Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendMessage");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Отправить файл
|
|
// Отправляет файл в выбранный чат
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [SendFileByUpload](@green-api.com/docs/api/sending/SendFileByUpload/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// Файл - Строка, ДвоичныеДанные - Данные или путь к файлу - file
|
|
// ИмяФайла - Строка - Имя загружаемого файла с раширением - filename
|
|
// Описание - Строка - Текст сообщения под файлом - caption
|
|
// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ОтправитьФайл(Знач ПараметрыДоступа
|
|
, Знач IDЧата
|
|
, Знач Файл
|
|
, Знач ИмяФайла
|
|
, Знач Описание = ""
|
|
, Знач IDЦитируемого = "") Экспорт
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
|
|
|
|
Строка_ = "Строка";
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("fileName" , ИмяФайла , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("caption" , Описание , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого, Строка_, Параметры);
|
|
|
|
СоответствиеФайла = Новый Соответствие();
|
|
СоответствиеФайла.Вставить(СтрШаблон("file|%1", ИмяФайла), Файл);
|
|
|
|
URL = СформироватьМедиаURL(ПараметрыДоступа, "SendFileByUpload");
|
|
Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, Параметры, СоответствиеФайла);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Отправить файл по URL
|
|
// Отправляет файл по URL в выбранный чат
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [SendFileByUrl](@green-api.com/docs/api/sending/SendFileByUrl/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// URLФайла - Строка - URL файла для отправки - url
|
|
// ИмяФайла - Строка - Имя загружаемого файла с раширением - filename
|
|
// Описание - Строка - Текст сообщения под файлом - caption
|
|
// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ОтправитьФайлПоURL(Знач ПараметрыДоступа
|
|
, Знач IDЧата
|
|
, Знач URLФайла
|
|
, Знач ИмяФайла
|
|
, Знач Описание = ""
|
|
, Знач IDЦитируемого = "") Экспорт
|
|
|
|
Строка_ = "Строка";
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("urlFile" , URLФайла , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("fileName" , ИмяФайла , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("caption" , Описание , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого, Строка_, Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendFileByUrl");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Отправить опрос
|
|
// Отправляет опрос с вариантами ответов в выбранный чат
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [SendPoll](@green-api.com/docs/api/sending/SendPoll/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// Текст - Строка - Текст сообщения - text
|
|
// Варианты - Массив Из Строка - Варианты ответов - options
|
|
// МножественныйВыбор - Булево - Позволяет выбирать несколько вариантов ответа - multi
|
|
// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ОтправитьОпрос(Знач ПараметрыДоступа
|
|
, Знач IDЧата
|
|
, Знач Текст
|
|
, Знач Варианты
|
|
, Знач МножественныйВыбор = Ложь
|
|
, Знач IDЦитируемого = "") Экспорт
|
|
|
|
Строка_ = "Строка";
|
|
Параметры = Новый Структура;
|
|
МассивВариантов = Новый Массив;
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьМассив(Варианты);
|
|
|
|
Для Каждого Вариант Из Варианты Цикл
|
|
МассивВариантов.Добавить(Новый Структура("optionName", Вариант));
|
|
КонецЦикла;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_ , Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("message" , Текст , Строка_ , Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("options" , МассивВариантов , "Коллекция", Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("multipleAnswers", МножественныйВыбор, "Булево" , Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого , Строка_ , Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendPoll");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Отправить локацию
|
|
// Отправляет данные о местоположении в указанный чат
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [SendPoll](@green-api.com/docs/api/sending/SendPoll/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// Локация - Структура Из КлючИЗначение - Описание локации. См. ПолучитьОписаниеЛокации - loc
|
|
// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ОтправитьЛокацию(Знач ПараметрыДоступа, Знач IDЧата, Знач Локация, Знач IDЦитируемого = "") Экспорт
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Локация);
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого, "Строка", Параметры);
|
|
|
|
Для Каждого Элемент Из Локация Цикл
|
|
Параметры.Вставить(Элемент.Ключ, Элемент.Значение);
|
|
КонецЦикла;
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendLocation");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Отправить контакт
|
|
// Отправляет контакт с номером телефона в выбранный чат
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [SendContact](@green-api.com/docs/api/sending/SendContact/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// Контакт - Структура Из КлючИЗначение - Описание контакта. См. ПолучитьОписаниеКонтакта - contact
|
|
// IDЦитируемого - Строка - ID цитируемого сообщения, если необходимо - quoted
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ОтправитьКонтакт(Знач ПараметрыДоступа, Знач IDЧата, Знач Контакт, Знач IDЦитируемого = "") Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка" , Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("contact" , Контакт , "Коллекция", Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("quotedMessageId", IDЦитируемого, "Строка" , Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "sendContact");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Переслать сообщения
|
|
// Пересылает сообщения из одного чата в другой
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [ForwardMessages](@green-api.com/docs/api/sending/ForwardMessages/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// Откуда - Строка - ID чата источника сообщения - from
|
|
// Куда - Строка - ID чата приемника сообщения - to
|
|
// Сообщения - Строка, Массив Из Строка - Сообщения или одно сообщения для отправки - msgs
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПереслатьСообщения(Знач ПараметрыДоступа, Знач Откуда, Знач Куда, Знач Сообщения) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , Куда , "Строка" , Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("chatIdFrom", Откуда , "Строка" , Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("messages" , Сообщения, "Коллекция", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "forwardMessages");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Изменить текст сообщения
|
|
// Изменяет текст сообщения
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [EditMessage](@green-api.com/docs/api/service/EditMessage/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// IDСообщения - Строка - Идентификатор сообщения - message
|
|
// Текст - Строка - Новый текст сообщения - text
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ИзменитьТекстСообщения(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения, Знач Текст) Экспорт
|
|
|
|
Строка_ = "Строка";
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("idMessage", IDСообщения, Строка_, Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("message" , Текст , Строка_, Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "editMessage");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Удалить сообщение
|
|
// Удаляет сообщение в выбранном чате
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [DeleteMessage](@green-api.com/docs/api/service/deleteMessage/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// IDСообщения - Строка - Идентификатор сообщения - message
|
|
// ТолькоУОтправителя - Булево - Удалять только у отправителя - sender
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция УдалитьСообщение(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения, Знач ТолькоУОтправителя = Ложь) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("idMessage" , IDСообщения , "Строка", Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("onlySenderDelete", ТолькоУОтправителя, "Булево", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "deleteMessage");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Получить описание контакта
|
|
// Получает описание контакта для функции ОтправитьКонстакт
|
|
//
|
|
// Параметры:
|
|
// Телефон - Число - Телефон в международном формате без знака плюс - phone
|
|
// Имя - Строка - Имя контакта - name
|
|
// Фамилия - Строка - Фамилия контакта - surname
|
|
// Отчество - Строка - Отчество контакта - midname
|
|
// Компания - Строка - Название компании контакта - company
|
|
//
|
|
// Возвращаемое значение:
|
|
// Структура Из КлючИЗначение - Описание контакта
|
|
Функция ПолучитьОписаниеКонтакта(Знач Телефон
|
|
, Знач Имя = ""
|
|
, Знач Фамилия = ""
|
|
, Знач Отчество = ""
|
|
, Знач Компания = "") Экспорт
|
|
|
|
Строка_ = "Строка";
|
|
Контакт = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("phoneContact", Телефон , "Число", Контакт);
|
|
OPI_Инструменты.ДобавитьПоле("firstName" , Имя , Строка_, Контакт);
|
|
OPI_Инструменты.ДобавитьПоле("middleName" , Фамилия , Строка_, Контакт);
|
|
OPI_Инструменты.ДобавитьПоле("lastName" , Отчество, Строка_, Контакт);
|
|
OPI_Инструменты.ДобавитьПоле("company" , Компания, Строка_, Контакт);
|
|
|
|
Возврат Контакт;
|
|
|
|
КонецФункции
|
|
|
|
// Получить описание локации
|
|
// Получает описание локации для отправки в ОтправитьЛокацию
|
|
//
|
|
// Параметры:
|
|
// Широта - Число - Географическая широта - lat
|
|
// Долгота - Число - Географическая долгота - long
|
|
// Адрес - Строка - Адрес локации - addr
|
|
// Название - Строка - Название локации - name
|
|
//
|
|
// Возвращаемое значение:
|
|
// Структура Из КлючИЗначение - Описание локации
|
|
Функция ПолучитьОписаниеЛокации(Знач Широта, Знач Долгота, Знач Адрес = "", Знач Название = "") Экспорт
|
|
|
|
Локация = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("latitude" , Широта , "Число" , Локация);
|
|
OPI_Инструменты.ДобавитьПоле("longitude" , Долгота , "Число" , Локация);
|
|
OPI_Инструменты.ДобавитьПоле("address" , Адрес , "Строка", Локация);
|
|
OPI_Инструменты.ДобавитьПоле("nameLocation", Название, "Строка", Локация);
|
|
|
|
Возврат Локация;
|
|
|
|
КонецФункции
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ПолучениеУведомлений
|
|
|
|
// Получить уведомление
|
|
// Получает одно уведомление из очереди
|
|
//
|
|
// Примечание:
|
|
// После успешного принятия уведомления, необходимо удалить его из очереди при помощи метода `УдалитьУведомлениеИзОчереди`
|
|
// Метод в документации API: [ReceiveNotification](@green-api.com/docs/api/receiving/technology-http-api/ReceiveNotification/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// Таймаут - Число - Таймаут ожидания новых сообщений при пустой очереди - timeout
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьУведомление(Знач ПараметрыДоступа, Знач Таймаут = 5) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("receiveTimeout", Таймаут, "Число", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "receiveNotification");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Удалить уведомление из очереди
|
|
// Удаляет уведомление из очерели после успешного получения
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [DeleteNotification](@green-api.com/docs/api/receiving/technology-http-api/DeleteNotification/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDДоставки - Строка, Число - Идентификатор доставки из метода ПолучитьУведомление - receipt
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция УдалитьУведомлениеИзОчереди(Знач ПараметрыДоступа, Знач IDДоставки) Экспорт
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDДоставки);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "deleteNotification");
|
|
URL = СтрШаблон("%1/%2", URL, IDДоставки);
|
|
|
|
Ответ = OPI_ЗапросыHTTP.Delete(URL);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Скачать файл сообщения
|
|
// Получает ссылку на скачивание файла из входящего сообщения
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [DownloadFile](@green-api.com/docs/api/receiving/files/DownloadFile/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// IDСообщения - Строка - Идентификатор сообщения с файлом - message
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция СкачатьФайлСообщения(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("idMessage", IDСообщения, "Строка", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "downloadFile");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Установить отметку прочтения
|
|
// Устанавливает отметку Прочитано для сообщения или всех сообщений чата
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [ReadChat](@green-api.com/docs/api/marks/ReadChat/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// IDСообщения - Строка - Идентификатор сообщения. Все сообщения, если не заполнено - message
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция УстановитьОтметкуПрочтения(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения = "") Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("idMessage" , IDСообщения, "Строка", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "readChat");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ОчередьСообщений
|
|
|
|
// Получить очередь сообщений
|
|
// Получает список сообщений в очереди на отправку
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [ShowMessagesQueue](@green-api.com/docs/api/queues/ShowMessagesQueue/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьОчередьСообщений(Знач ПараметрыДоступа) Экспорт
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "showMessagesQueue");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Очистить очередь сообщений
|
|
// Очищает очередь сообщений на отправку
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [ClearMessagesQueue](@green-api.com/docs/api/queues/ClearMessagesQueue/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ОчиститьОчередьСообщений(Знач ПараметрыДоступа) Экспорт
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "clearMessagesQueue");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ЖурналыСообщений
|
|
|
|
// Получить историю чата
|
|
// Получает историю сообщений чата
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [GetChatHistory](@green-api.com/docs/api/journals/GetChatHistory/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// Количество - Число - Количество сообщений для получения - count
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьИсториюЧата(Знач ПараметрыДоступа, Знач IDЧата, Знач Количество = 100) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId", IDЧата , "Строка", Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("count" , Количество, "Число" , Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "getChatHistory");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Получить сообщение
|
|
// Получает информацию о сообщении чата по ID
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [GetMessage](@green-api.com/docs/api/journals/GetMessage/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// IDЧата - Строка - Идентификатор чата - chat
|
|
// IDСообщения - Строка - Идентификатор сообщения - msg
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьСообщение(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка" , Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("idMessage", IDСообщения, "Строка" , Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "getMessage");
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Получить журнал входящих сообщений
|
|
// Получает список входящих сообщений инстанса за указанный интервал
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [LastIncomingMessages](@green-api.com/docs/api/journals/LastIncomingMessages/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// Период - Число - Время в минутах, за которое требуется показать сообщения - period
|
|
//
|
|
// Возвращаемое значение:
|
|
// Массив Из Произвольный - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьЖурналВходящихСообщений(Знач ПараметрыДоступа, Знач Период = 1440) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("minutes", Период, "Число" , Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "lastIncomingMessages");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
|
|
|
|
Если Не ЗначениеЗаполнено(Ответ) Тогда
|
|
Возврат Новый Массив;
|
|
КонецЕсли;
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
// Получить журнал исходящих сообщений
|
|
// Получает список исходящих сообщений инстанса за указанный интервал
|
|
//
|
|
// Примечание:
|
|
// Метод в документации API: [LastOutgoingMessages](@green-api.com/docs/api/journals/LastOutgoingMessages/)
|
|
//
|
|
// Параметры:
|
|
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
|
// Период - Число - Время в минутах, за которое требуется показать сообщения - period
|
|
//
|
|
// Возвращаемое значение:
|
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
|
Функция ПолучитьЖурналИсходящихСообщений(Знач ПараметрыДоступа, Знач Период = 1440) Экспорт
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("minutes", Период, "Число" , Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, "lastOutgoingMessages");
|
|
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
#КонецОбласти
|
|
|
|
#КонецОбласти
|
|
|
|
#Область СлужебныеПроцедурыИФункции
|
|
|
|
Функция СформироватьОсновнойURL(Знач ПараметрыДоступа, Знач Метод)
|
|
|
|
Возврат СформироватьURL(ПараметрыДоступа, Метод, "apiUrl");
|
|
|
|
КонецФункции
|
|
|
|
Функция СформироватьМедиаURL(Знач ПараметрыДоступа, Знач Метод)
|
|
|
|
Возврат СформироватьURL(ПараметрыДоступа, Метод, "mediaUrl");
|
|
|
|
КонецФункции
|
|
|
|
Функция СформироватьURL(ПараметрыДоступа, Метод, ПолеURL)
|
|
|
|
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(ПараметрыДоступа);
|
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Метод);
|
|
|
|
ОбязательныеПоля = СтрРазделить(ПолеURL + ",idInstance,apiTokenInstance", ",");
|
|
ОтсутствующиеПоля = OPI_Инструменты.НайтиОтсутствующиеПоляКоллекции(ПараметрыДоступа, ОбязательныеПоля);
|
|
|
|
Если ОтсутствующиеПоля.Количество() > 0 Тогда
|
|
ВызватьИсключение "Отсутствуют обязательные поля в параметрах доступа!";
|
|
КонецЕсли;
|
|
|
|
Url = ПараметрыДоступа[ПолеURL];
|
|
IdInstance = ПараметрыДоступа["idInstance"];
|
|
ApiTokenInstance = ПараметрыДоступа["apiTokenInstance"];
|
|
|
|
URL = СтрШаблон("%1/waInstance%2/%3/%4", Url, IdInstance, Метод, ApiTokenInstance);
|
|
|
|
Возврат URL;
|
|
|
|
КонецФункции
|
|
|
|
Функция ДействиеСУчастникомГруппы(Знач ПараметрыДоступа, Знач IDГруппы, Знач IDПользователя, Знач Метод)
|
|
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("groupId" , IDГруппы , "Строка", Параметры);
|
|
OPI_Инструменты.ДобавитьПоле("participantChatId", IDПользователя, "Строка", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, Метод);
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
Функция УправлениеАрхивациейЧата(Знач ПараметрыДоступа, Знач IDЧата, Знач Архивация)
|
|
|
|
Метод = ?(Архивация, "archiveChat", "unarchiveChat");
|
|
Параметры = Новый Структура;
|
|
|
|
OPI_Инструменты.ДобавитьПоле("chatId", IDЧата, "Строка", Параметры);
|
|
|
|
URL = СформироватьОсновнойURL(ПараметрыДоступа, Метод);
|
|
Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры);
|
|
|
|
Возврат Ответ;
|
|
|
|
КонецФункции
|
|
|
|
#КонецОбласти
|