mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-01-02 03:38:55 +02:00
VKT: Отправка голосовых
This commit is contained in:
parent
63b5bedc6f
commit
f10059a5ef
BIN
data.json.gpg
BIN
data.json.gpg
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
service/test_data/song.m4a
Normal file
BIN
service/test_data/song.m4a
Normal file
Binary file not shown.
@ -3493,7 +3493,7 @@ Function DeleteMessage(Val URL, Val MessageID, Val Token = "") Export
|
||||
|
||||
EndFunction
|
||||
|
||||
// SendFile
|
||||
// Send file
|
||||
// Send disk file to chat
|
||||
//
|
||||
// Note
|
||||
|
@ -162,7 +162,7 @@ Function SendTextMessage(Val Token
|
||||
|
||||
EndFunction
|
||||
|
||||
// SendFile
|
||||
// Send file
|
||||
// Sends the file to the chat
|
||||
//
|
||||
// Note
|
||||
@ -211,6 +211,55 @@ Function SendFile(Val Token
|
||||
|
||||
EndFunction
|
||||
|
||||
// Send voice
|
||||
// Sends an audio file as a voice message
|
||||
//
|
||||
// Note
|
||||
// If you want the client to display this file as a playable voice message, it must be in aac, ogg, or m4a format
|
||||
// Method at API documentation: [POST /messages/sendVoice](@teams.vk.com/botapi/#/messages/post_messages_sendVoice)
|
||||
//
|
||||
// Parameters:
|
||||
// Token - String - Bot token - token
|
||||
// ChatID - String, Number - Chat ID for sending - chatid
|
||||
// File - BinaryData, String - File for sending - file
|
||||
// FileType - String - Audio type: aac, ogg or m4a - type
|
||||
// ReplyID - String, Number - Replying message id if necessary - reply
|
||||
// Keyboard - Array Of String - Buttons to the message if necessary - keyboard
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Serialized JSON response from VK Teams
|
||||
Function SendVoice(Val Token
|
||||
, Val ChatID
|
||||
, Val File
|
||||
, Val FileType = "m4a"
|
||||
, Val ReplyID = 0
|
||||
, Val Keyboard = "") Export
|
||||
|
||||
URL = "/messages/sendVoice";
|
||||
Parameters = NormalizeMain(URL, Token);
|
||||
|
||||
OPI_TypeConversion.GetLine(FileType);
|
||||
|
||||
MIMETypeMapping = New Map;
|
||||
MIMETypeMapping.Insert("m4a", "audio/mp4");
|
||||
MIMETypeMapping.Insert("ogg", "audio/ogg");
|
||||
MIMETypeMapping.Insert("aac", "audio/aac");
|
||||
|
||||
OPI_Tools.AddField("chatId" , ChatID , "String" , Parameters);
|
||||
OPI_Tools.AddField("inlineKeyboardMarkup", Keyboard , "Collection", Parameters);
|
||||
OPI_Tools.AddField("replyMsgId" , ReplyID , "String" , Parameters);
|
||||
|
||||
OPI_TypeConversion.GetBinaryData(File);
|
||||
|
||||
Files = New Map;
|
||||
Files.Insert("file|voice", File);
|
||||
|
||||
Response = OPI_Tools.PostMultipart(URL, Parameters, Files, MIMETypeMapping[FileType]);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Change the message text
|
||||
// Changes the text of an existing message
|
||||
//
|
||||
|
@ -167,7 +167,7 @@ Function SendImage(Val Token, Val URL, Val UserID, Val SendingToChannel, Val Des
|
||||
|
||||
EndFunction
|
||||
|
||||
// SendFile
|
||||
// Send file
|
||||
// Sends a file (document) to a chat or channel
|
||||
//
|
||||
// Parameters:
|
||||
|
@ -3249,6 +3249,7 @@ Procedure VKT_MessagesSending() Export
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_MessageID", TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Audio2" , TestParameters);
|
||||
|
||||
VkTeams_SendTextMessage(TestParameters);
|
||||
VKTeams_ForwardMessage(TestParameters);
|
||||
@ -3256,6 +3257,7 @@ Procedure VKT_MessagesSending() Export
|
||||
VKTeams_ResendFile(TestParameters);
|
||||
VKTeams_EditMessageText(TestParameters);
|
||||
VKTeams_DeleteMessage(TestParameters);
|
||||
VKTeams_SendVoice(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@ -10476,6 +10478,50 @@ Procedure VKTeams_DeleteMessage(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure VKTeams_SendVoice(FunctionParameters)
|
||||
|
||||
Token = FunctionParameters["VkTeams_Token"];
|
||||
ChatID = FunctionParameters["VkTeams_ChatID2"];
|
||||
ReplyID = FunctionParameters["VkTeams_MessageID"];
|
||||
Text = "File caption";
|
||||
|
||||
File = FunctionParameters["Audio2"] ; // URL
|
||||
FilePath = GetTempFileName("m4a"); // Path
|
||||
|
||||
CopyFile(File, FilePath);
|
||||
|
||||
FileBD = New BinaryData(FilePath); // Binary
|
||||
|
||||
Result = OPI_VKTeams.SendVoice(Token, ChatID, File);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendVoice (URL)", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result); // SKIP
|
||||
|
||||
Result = OPI_VKTeams.SendVoice(Token, ChatID, FilePath, ,ReplyID);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendVoice (Path)", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result); // SKIP
|
||||
|
||||
Result = OPI_VKTeams.SendVoice(Token, ChatID, File);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendFile", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result);
|
||||
|
||||
DeleteFiles(FilePath);
|
||||
|
||||
FileID = Result["fileId"];
|
||||
OPI_TestDataRetrieval.WriteParameter("VkTeams_VoiceID", FileID);
|
||||
FunctionParameters.Insert("VkTeams_VoiceID", FileID);
|
||||
|
||||
OPI_Tools.Pause(5);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
@ -180,7 +180,7 @@ Function GetTestTable() Export
|
||||
NewTest(TestTable, "Viber_GetOnlineUsers" , "Get online users" , Viber);
|
||||
NewTest(TestTable, "Viber_SendTextMessage" , "Send text message" , Viber);
|
||||
NewTest(TestTable, "Viber_SendImage" , "Send image" , Viber);
|
||||
NewTest(TestTable, "Viber_SendFile" , "SendFile" , Viber);
|
||||
NewTest(TestTable, "Viber_SendFile" , "Send file" , Viber);
|
||||
NewTest(TestTable, "Viber_SendContact" , "Send contact" , Viber);
|
||||
NewTest(TestTable, "Viber_SendLocation" , "Send location" , Viber);
|
||||
NewTest(TestTable, "Viber_SendLink" , "Send link" , Viber);
|
||||
|
@ -3493,7 +3493,7 @@ Function DeleteMessage(Val URL, Val MessageID, Val Token = "") Export
|
||||
|
||||
EndFunction
|
||||
|
||||
// SendFile
|
||||
// Send file
|
||||
// Send disk file to chat
|
||||
//
|
||||
// Note
|
||||
|
@ -180,7 +180,7 @@ Function GetTestTable() Export
|
||||
NewTest(TestTable, "Viber_GetOnlineUsers" , "Get online users" , Viber);
|
||||
NewTest(TestTable, "Viber_SendTextMessage" , "Send text message" , Viber);
|
||||
NewTest(TestTable, "Viber_SendImage" , "Send image" , Viber);
|
||||
NewTest(TestTable, "Viber_SendFile" , "SendFile" , Viber);
|
||||
NewTest(TestTable, "Viber_SendFile" , "Send file" , Viber);
|
||||
NewTest(TestTable, "Viber_SendContact" , "Send contact" , Viber);
|
||||
NewTest(TestTable, "Viber_SendLocation" , "Send location" , Viber);
|
||||
NewTest(TestTable, "Viber_SendLink" , "Send link" , Viber);
|
||||
|
@ -3249,6 +3249,7 @@ Procedure VKT_MessagesSending() Export
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_MessageID", TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Audio2" , TestParameters);
|
||||
|
||||
VkTeams_SendTextMessage(TestParameters);
|
||||
VKTeams_ForwardMessage(TestParameters);
|
||||
@ -3256,6 +3257,7 @@ Procedure VKT_MessagesSending() Export
|
||||
VKTeams_ResendFile(TestParameters);
|
||||
VKTeams_EditMessageText(TestParameters);
|
||||
VKTeams_DeleteMessage(TestParameters);
|
||||
VKTeams_SendVoice(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@ -10476,6 +10478,50 @@ Procedure VKTeams_DeleteMessage(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure VKTeams_SendVoice(FunctionParameters)
|
||||
|
||||
Token = FunctionParameters["VkTeams_Token"];
|
||||
ChatID = FunctionParameters["VkTeams_ChatID2"];
|
||||
ReplyID = FunctionParameters["VkTeams_MessageID"];
|
||||
Text = "File caption";
|
||||
|
||||
File = FunctionParameters["Audio2"] ; // URL
|
||||
FilePath = GetTempFileName("m4a"); // Path
|
||||
|
||||
FileCopy(File, FilePath);
|
||||
|
||||
FileBD = New BinaryData(FilePath); // Binary
|
||||
|
||||
Result = OPI_VKTeams.SendVoice(Token, ChatID, File);
|
||||
|
||||
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "SendVoice (URL)", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result); // SKIP
|
||||
|
||||
Result = OPI_VKTeams.SendVoice(Token, ChatID, FilePath, ,ReplyID);
|
||||
|
||||
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "SendVoice (Path)", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result); // SKIP
|
||||
|
||||
Result = OPI_VKTeams.SendVoice(Token, ChatID, File);
|
||||
|
||||
// END
|
||||
|
||||
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "SendFile", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result);
|
||||
|
||||
DeleteFiles(FilePath);
|
||||
|
||||
FileID = Result["fileId"];
|
||||
OPI_TestDataRetrieval.WriteParameter("VkTeams_VoiceID", FileID);
|
||||
FunctionParameters.Insert("VkTeams_VoiceID", FileID);
|
||||
|
||||
OPI_Tools.Pause(5);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
@ -162,7 +162,7 @@ Function SendTextMessage(Val Token
|
||||
|
||||
EndFunction
|
||||
|
||||
// SendFile
|
||||
// Send file
|
||||
// Sends the file to the chat
|
||||
//
|
||||
// Note
|
||||
@ -211,6 +211,55 @@ Function SendFile(Val Token
|
||||
|
||||
EndFunction
|
||||
|
||||
// Send voice
|
||||
// Sends an audio file as a voice message
|
||||
//
|
||||
// Note
|
||||
// If you want the client to display this file as a playable voice message, it must be in aac, ogg, or m4a format
|
||||
// Method at API documentation: [POST /messages/sendVoice](@teams.vk.com/botapi/#/messages/post_messages_sendVoice)
|
||||
//
|
||||
// Parameters:
|
||||
// Token - String - Bot token - token
|
||||
// ChatID - String, Number - Chat ID for sending - chatid
|
||||
// File - BinaryData, String - File for sending - file
|
||||
// FileType - String - Audio type: aac, ogg or m4a - type
|
||||
// ReplyID - String, Number - Replying message id if necessary - reply
|
||||
// Keyboard - Array Of String - Buttons to the message if necessary - keyboard
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Serialized JSON response from VK Teams
|
||||
Function SendVoice(Val Token
|
||||
, Val ChatID
|
||||
, Val File
|
||||
, Val FileType = "m4a"
|
||||
, Val ReplyID = 0
|
||||
, Val Keyboard = "") Export
|
||||
|
||||
URL = "/messages/sendVoice";
|
||||
Parameters = NormalizeMain(URL, Token);
|
||||
|
||||
OPI_TypeConversion.GetLine(FileType);
|
||||
|
||||
MIMETypeMapping = New Map;
|
||||
MIMETypeMapping.Insert("m4a", "audio/mp4");
|
||||
MIMETypeMapping.Insert("ogg", "audio/ogg");
|
||||
MIMETypeMapping.Insert("aac", "audio/aac");
|
||||
|
||||
OPI_Tools.AddField("chatId" , ChatID , "String" , Parameters);
|
||||
OPI_Tools.AddField("inlineKeyboardMarkup", Keyboard , "Collection", Parameters);
|
||||
OPI_Tools.AddField("replyMsgId" , ReplyID , "String" , Parameters);
|
||||
|
||||
OPI_TypeConversion.GetBinaryData(File);
|
||||
|
||||
Files = New Map;
|
||||
Files.Insert("file|voice", File);
|
||||
|
||||
Response = OPI_Tools.PostMultipart(URL, Parameters, Files, MIMETypeMapping[FileType]);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Change the message text
|
||||
// Changes the text of an existing message
|
||||
//
|
||||
|
@ -167,7 +167,7 @@ Function SendImage(Val Token, Val URL, Val UserID, Val SendingToChannel, Val Des
|
||||
|
||||
EndFunction
|
||||
|
||||
// SendFile
|
||||
// Send file
|
||||
// Sends a file (document) to a chat or channel
|
||||
//
|
||||
// Parameters:
|
||||
|
@ -195,6 +195,67 @@
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendVoice";
|
||||
NewLine.МетодПоиска = "SENDVOICE";
|
||||
NewLine.Параметр = "--token";
|
||||
NewLine.Описание = "Bot token";
|
||||
NewLine.Область = "Message sending";
|
||||
NewLine.ОписаниеМетода = "Sends an audio file as a voice message";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendVoice";
|
||||
NewLine.МетодПоиска = "SENDVOICE";
|
||||
NewLine.Параметр = "--chatid";
|
||||
NewLine.Описание = "Chat ID for sending";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendVoice";
|
||||
NewLine.МетодПоиска = "SENDVOICE";
|
||||
NewLine.Параметр = "--file";
|
||||
NewLine.Описание = "File for sending";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendVoice";
|
||||
NewLine.МетодПоиска = "SENDVOICE";
|
||||
NewLine.Параметр = "--type";
|
||||
NewLine.Описание = "Audio type: aac, ogg or m4a (optional, def. val. - m4a)";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendVoice";
|
||||
NewLine.МетодПоиска = "SENDVOICE";
|
||||
NewLine.Параметр = "--reply";
|
||||
NewLine.Описание = "Replying message id if necessary (optional, def. val. - Empty value)";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendVoice";
|
||||
NewLine.МетодПоиска = "SENDVOICE";
|
||||
NewLine.Параметр = "--keyboard";
|
||||
NewLine.Описание = "Buttons to the message if necessary (optional, def. val. - Empty value)";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
|
@ -211,6 +211,55 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Отправить голосовое сообщение
|
||||
// Отправляет аудиофайл в качестве голосового сообщения
|
||||
//
|
||||
// Примечание:
|
||||
// Если вы хотите, чтобы клиент отображал этот файл как воспроизводимое голосовое сообщение, он должен быть в формате aac, ogg или m4a
|
||||
// Метод в документации API: [POST /messages/sendVoice](@teams.vk.com/botapi/#/messages/post_messages_sendVoice)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен бота - token
|
||||
// IDЧата - Строка, Число - ID чата для отправки файла - chatid
|
||||
// Файл - ДвоичныеДанные, Строка - Файл для отправки - file
|
||||
// ТипФайла - Строка - Тип аудиофайла: aac, ogg или m4a - type
|
||||
// IDЦитируемого - Строка, Число - ID цитируемого сообщения, если необходимо - reply
|
||||
// Клавиатура - Массив Из Строка - Кнопки к сообщению, если необходимо - keyboard
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
|
||||
Функция ОтправитьГолосовоеСообщение(Знач Токен
|
||||
, Знач IDЧата
|
||||
, Знач Файл
|
||||
, Знач ТипФайла = "m4a"
|
||||
, Знач IDЦитируемого = 0
|
||||
, Знач Клавиатура = "") Экспорт
|
||||
|
||||
URL = "/messages/sendVoice";
|
||||
Параметры = НормализоватьОснову(URL, Токен);
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТипФайла);
|
||||
|
||||
СоответствиеMIME = Новый Соответствие;
|
||||
СоответствиеMIME.Вставить("m4a", "audio/mp4");
|
||||
СоответствиеMIME.Вставить("ogg", "audio/ogg");
|
||||
СоответствиеMIME.Вставить("aac", "audio/aac");
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка" , Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("inlineKeyboardMarkup", Клавиатура , "Коллекция", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("replyMsgId" , IDЦитируемого, "Строка" , Параметры);
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
|
||||
|
||||
Файлы = Новый Соответствие;
|
||||
Файлы.Вставить("file|voice", Файл);
|
||||
|
||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы, СоответствиеMIME[ТипФайла]);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Изменить текст сообщения
|
||||
// Изменяет текст сущесствующего сообщения
|
||||
//
|
||||
|
@ -3249,6 +3249,7 @@
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_MessageID", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Audio2" , ПараметрыТеста);
|
||||
|
||||
VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста);
|
||||
VKTeams_ПереслатьСообщение(ПараметрыТеста);
|
||||
@ -3256,6 +3257,7 @@
|
||||
VKTeams_ПереслатьФайл(ПараметрыТеста);
|
||||
VKTeams_ИзменитьТекстСообщения(ПараметрыТеста);
|
||||
VKTeams_УдалитьСообщение(ПараметрыТеста);
|
||||
VKTeams_ОтправитьГолосовоеСообщение(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -10476,6 +10478,50 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура VKTeams_ОтправитьГолосовоеСообщение(ПараметрыФункции)
|
||||
|
||||
Токен = ПараметрыФункции["VkTeams_Token"];
|
||||
IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
|
||||
IDЦитируемого = ПараметрыФункции["VkTeams_MessageID"];
|
||||
Текст = "Подпись к файлу";
|
||||
|
||||
Файл = ПараметрыФункции["Audio2"] ; // URL
|
||||
ФайлПуть = ПолучитьИмяВременногоФайла("m4a"); // Путь
|
||||
|
||||
КопироватьФайл(Файл, ФайлПуть);
|
||||
|
||||
ФайлДД = Новый ДвоичныеДанные(ФайлПуть); // Двоичные
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьГолосовоеСообщение(Токен, IDЧата, Файл);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьГолосовоеСообщение (URL)", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат); // SKIP
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьГолосовоеСообщение(Токен, IDЧата, ФайлПуть, ,IDЦитируемого);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьГолосовоеСообщение (Путь)", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат); // SKIP
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьГолосовоеСообщение(Токен, IDЧата, Файл);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат);
|
||||
|
||||
УдалитьФайлы(ФайлПуть);
|
||||
|
||||
IDФайла = Результат["fileId"];
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VkTeams_VoiceID", IDФайла);
|
||||
ПараметрыФункции.Вставить("VkTeams_VoiceID", IDФайла);
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -211,6 +211,55 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Отправить голосовое сообщение
|
||||
// Отправляет аудиофайл в качестве голосового сообщения
|
||||
//
|
||||
// Примечание:
|
||||
// Если вы хотите, чтобы клиент отображал этот файл как воспроизводимое голосовое сообщение, он должен быть в формате aac, ogg или m4a
|
||||
// Метод в документации API: [POST /messages/sendVoice](@teams.vk.com/botapi/#/messages/post_messages_sendVoice)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен бота - token
|
||||
// IDЧата - Строка, Число - ID чата для отправки файла - chatid
|
||||
// Файл - ДвоичныеДанные, Строка - Файл для отправки - file
|
||||
// ТипФайла - Строка - Тип аудиофайла: aac, ogg или m4a - type
|
||||
// IDЦитируемого - Строка, Число - ID цитируемого сообщения, если необходимо - reply
|
||||
// Клавиатура - Массив Из Строка - Кнопки к сообщению, если необходимо - keyboard
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
|
||||
Функция ОтправитьГолосовоеСообщение(Знач Токен
|
||||
, Знач IDЧата
|
||||
, Знач Файл
|
||||
, Знач ТипФайла = "m4a"
|
||||
, Знач IDЦитируемого = 0
|
||||
, Знач Клавиатура = "") Экспорт
|
||||
|
||||
URL = "/messages/sendVoice";
|
||||
Параметры = НормализоватьОснову(URL, Токен);
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТипФайла);
|
||||
|
||||
СоответствиеMIME = Новый Соответствие;
|
||||
СоответствиеMIME.Вставить("m4a", "audio/mp4");
|
||||
СоответствиеMIME.Вставить("ogg", "audio/ogg");
|
||||
СоответствиеMIME.Вставить("aac", "audio/aac");
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка" , Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("inlineKeyboardMarkup", Клавиатура , "Коллекция", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("replyMsgId" , IDЦитируемого, "Строка" , Параметры);
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
|
||||
|
||||
Файлы = Новый Соответствие;
|
||||
Файлы.Вставить("file|voice", Файл);
|
||||
|
||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы, СоответствиеMIME[ТипФайла]);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Изменить текст сообщения
|
||||
// Изменяет текст сущесствующего сообщения
|
||||
//
|
||||
|
@ -3249,6 +3249,7 @@
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_MessageID", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Audio2" , ПараметрыТеста);
|
||||
|
||||
VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста);
|
||||
VKTeams_ПереслатьСообщение(ПараметрыТеста);
|
||||
@ -3256,6 +3257,7 @@
|
||||
VKTeams_ПереслатьФайл(ПараметрыТеста);
|
||||
VKTeams_ИзменитьТекстСообщения(ПараметрыТеста);
|
||||
VKTeams_УдалитьСообщение(ПараметрыТеста);
|
||||
VKTeams_ОтправитьГолосовоеСообщение(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -10476,6 +10478,50 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура VKTeams_ОтправитьГолосовоеСообщение(ПараметрыФункции)
|
||||
|
||||
Токен = ПараметрыФункции["VkTeams_Token"];
|
||||
IDЧата = ПараметрыФункции["VkTeams_ChatID2"];
|
||||
IDЦитируемого = ПараметрыФункции["VkTeams_MessageID"];
|
||||
Текст = "Подпись к файлу";
|
||||
|
||||
Файл = ПараметрыФункции["Audio2"] ; // URL
|
||||
ФайлПуть = ПолучитьИмяВременногоФайла("m4a"); // Путь
|
||||
|
||||
КопироватьФайл(Файл, ФайлПуть);
|
||||
|
||||
ФайлДД = Новый ДвоичныеДанные(ФайлПуть); // Двоичные
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьГолосовоеСообщение(Токен, IDЧата, Файл);
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьГолосовоеСообщение (URL)", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат); // SKIP
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьГолосовоеСообщение(Токен, IDЧата, ФайлПуть, ,IDЦитируемого);
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьГолосовоеСообщение (Путь)", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат); // SKIP
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьГолосовоеСообщение(Токен, IDЧата, Файл);
|
||||
|
||||
// END
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат);
|
||||
|
||||
УдалитьФайлы(ФайлПуть);
|
||||
|
||||
IDФайла = Результат["fileId"];
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VkTeams_VoiceID", IDФайла);
|
||||
ПараметрыФункции.Вставить("VkTeams_VoiceID", IDФайла);
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -199,6 +199,71 @@
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьГолосовоеСообщение";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬГОЛОСОВОЕСООБЩЕНИЕ";
|
||||
НоваяСтрока.Параметр = "--token";
|
||||
НоваяСтрока.Описание = "Токен бота";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
НоваяСтрока.ОписаниеМетода = "Отправляет аудиофайл в качестве голосового сообщения
|
||||
|
|
||||
| Пример указания параметра типа массив:
|
||||
| --param ""['Val1','Val2','Val3']""
|
||||
|";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьГолосовоеСообщение";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬГОЛОСОВОЕСООБЩЕНИЕ";
|
||||
НоваяСтрока.Параметр = "--chatid";
|
||||
НоваяСтрока.Описание = "ID чата для отправки файла";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьГолосовоеСообщение";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬГОЛОСОВОЕСООБЩЕНИЕ";
|
||||
НоваяСтрока.Параметр = "--file";
|
||||
НоваяСтрока.Описание = "Файл для отправки";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьГолосовоеСообщение";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬГОЛОСОВОЕСООБЩЕНИЕ";
|
||||
НоваяСтрока.Параметр = "--type";
|
||||
НоваяСтрока.Описание = "Тип аудиофайла: aac, ogg или m4a (необяз. по ум. - m4a)";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьГолосовоеСообщение";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬГОЛОСОВОЕСООБЩЕНИЕ";
|
||||
НоваяСтрока.Параметр = "--reply";
|
||||
НоваяСтрока.Описание = "ID цитируемого сообщения, если необходимо (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьГолосовоеСообщение";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬГОЛОСОВОЕСООБЩЕНИЕ";
|
||||
НоваяСтрока.Параметр = "--keyboard";
|
||||
НоваяСтрока.Описание = "Кнопки к сообщению, если необходимо (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
|
Loading…
Reference in New Issue
Block a user