1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-02 03:38:55 +02:00

VKT: Отправка голосовых

This commit is contained in:
Anton 2024-08-11 16:13:00 +03:00
parent 63b5bedc6f
commit f10059a5ef
19 changed files with 2714 additions and 2200 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
service/test_data/song.m4a Normal file

Binary file not shown.

View File

@ -3493,7 +3493,7 @@ Function DeleteMessage(Val URL, Val MessageID, Val Token = "") Export
EndFunction EndFunction
// SendFile // Send file
// Send disk file to chat // Send disk file to chat
// //
// Note // Note

View File

@ -162,7 +162,7 @@ Function SendTextMessage(Val Token
EndFunction EndFunction
// SendFile // Send file
// Sends the file to the chat // Sends the file to the chat
// //
// Note // Note
@ -211,6 +211,55 @@ Function SendFile(Val Token
EndFunction 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 // Change the message text
// Changes the text of an existing message // Changes the text of an existing message
// //

View File

@ -167,7 +167,7 @@ Function SendImage(Val Token, Val URL, Val UserID, Val SendingToChannel, Val Des
EndFunction EndFunction
// SendFile // Send file
// Sends a file (document) to a chat or channel // Sends a file (document) to a chat or channel
// //
// Parameters: // Parameters:

View File

@ -3249,6 +3249,7 @@ Procedure VKT_MessagesSending() Export
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2" , TestParameters); OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_MessageID", TestParameters); OPI_TestDataRetrieval.ParameterToCollection("VkTeams_MessageID", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters); OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Audio2" , TestParameters);
VkTeams_SendTextMessage(TestParameters); VkTeams_SendTextMessage(TestParameters);
VKTeams_ForwardMessage(TestParameters); VKTeams_ForwardMessage(TestParameters);
@ -3256,6 +3257,7 @@ Procedure VKT_MessagesSending() Export
VKTeams_ResendFile(TestParameters); VKTeams_ResendFile(TestParameters);
VKTeams_EditMessageText(TestParameters); VKTeams_EditMessageText(TestParameters);
VKTeams_DeleteMessage(TestParameters); VKTeams_DeleteMessage(TestParameters);
VKTeams_SendVoice(TestParameters);
EndProcedure EndProcedure
@ -10476,6 +10478,50 @@ Procedure VKTeams_DeleteMessage(FunctionParameters)
EndProcedure 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
#EndRegion #EndRegion

View File

@ -180,7 +180,7 @@ Function GetTestTable() Export
NewTest(TestTable, "Viber_GetOnlineUsers" , "Get online users" , Viber); NewTest(TestTable, "Viber_GetOnlineUsers" , "Get online users" , Viber);
NewTest(TestTable, "Viber_SendTextMessage" , "Send text message" , Viber); NewTest(TestTable, "Viber_SendTextMessage" , "Send text message" , Viber);
NewTest(TestTable, "Viber_SendImage" , "Send image" , 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_SendContact" , "Send contact" , Viber);
NewTest(TestTable, "Viber_SendLocation" , "Send location" , Viber); NewTest(TestTable, "Viber_SendLocation" , "Send location" , Viber);
NewTest(TestTable, "Viber_SendLink" , "Send link" , Viber); NewTest(TestTable, "Viber_SendLink" , "Send link" , Viber);

View File

@ -3493,7 +3493,7 @@ Function DeleteMessage(Val URL, Val MessageID, Val Token = "") Export
EndFunction EndFunction
// SendFile // Send file
// Send disk file to chat // Send disk file to chat
// //
// Note // Note

View File

@ -180,7 +180,7 @@ Function GetTestTable() Export
NewTest(TestTable, "Viber_GetOnlineUsers" , "Get online users" , Viber); NewTest(TestTable, "Viber_GetOnlineUsers" , "Get online users" , Viber);
NewTest(TestTable, "Viber_SendTextMessage" , "Send text message" , Viber); NewTest(TestTable, "Viber_SendTextMessage" , "Send text message" , Viber);
NewTest(TestTable, "Viber_SendImage" , "Send image" , 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_SendContact" , "Send contact" , Viber);
NewTest(TestTable, "Viber_SendLocation" , "Send location" , Viber); NewTest(TestTable, "Viber_SendLocation" , "Send location" , Viber);
NewTest(TestTable, "Viber_SendLink" , "Send link" , Viber); NewTest(TestTable, "Viber_SendLink" , "Send link" , Viber);

View File

@ -3249,6 +3249,7 @@ Procedure VKT_MessagesSending() Export
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2" , TestParameters); OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_MessageID", TestParameters); OPI_TestDataRetrieval.ParameterToCollection("VkTeams_MessageID", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters); OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Audio2" , TestParameters);
VkTeams_SendTextMessage(TestParameters); VkTeams_SendTextMessage(TestParameters);
VKTeams_ForwardMessage(TestParameters); VKTeams_ForwardMessage(TestParameters);
@ -3256,6 +3257,7 @@ Procedure VKT_MessagesSending() Export
VKTeams_ResendFile(TestParameters); VKTeams_ResendFile(TestParameters);
VKTeams_EditMessageText(TestParameters); VKTeams_EditMessageText(TestParameters);
VKTeams_DeleteMessage(TestParameters); VKTeams_DeleteMessage(TestParameters);
VKTeams_SendVoice(TestParameters);
EndProcedure EndProcedure
@ -10476,6 +10478,50 @@ Procedure VKTeams_DeleteMessage(FunctionParameters)
EndProcedure 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
#EndRegion #EndRegion

View File

@ -162,7 +162,7 @@ Function SendTextMessage(Val Token
EndFunction EndFunction
// SendFile // Send file
// Sends the file to the chat // Sends the file to the chat
// //
// Note // Note
@ -211,6 +211,55 @@ Function SendFile(Val Token
EndFunction 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 // Change the message text
// Changes the text of an existing message // Changes the text of an existing message
// //

View File

@ -167,7 +167,7 @@ Function SendImage(Val Token, Val URL, Val UserID, Val SendingToChannel, Val Des
EndFunction EndFunction
// SendFile // Send file
// Sends a file (document) to a chat or channel // Sends a file (document) to a chat or channel
// //
// Parameters: // Parameters:

View File

@ -195,6 +195,67 @@
NewLine.Область = "Message sending"; 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 = CompositionTable.Add();
NewLine.Библиотека = "vkteams"; NewLine.Библиотека = "vkteams";
NewLine.Модуль = "OPI_VKTeams"; NewLine.Модуль = "OPI_VKTeams";

View File

@ -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[ТипФайла]);
Возврат Ответ;
КонецФункции
// Изменить текст сообщения // Изменить текст сообщения
// Изменяет текст сущесствующего сообщения // Изменяет текст сущесствующего сообщения
// //

View File

@ -3249,6 +3249,7 @@
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2" , ПараметрыТеста); OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_MessageID", ПараметрыТеста); OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_MessageID", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста); OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Audio2" , ПараметрыТеста);
VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста); VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста);
VKTeams_ПереслатьСообщение(ПараметрыТеста); VKTeams_ПереслатьСообщение(ПараметрыТеста);
@ -3256,6 +3257,7 @@
VKTeams_ПереслатьФайл(ПараметрыТеста); VKTeams_ПереслатьФайл(ПараметрыТеста);
VKTeams_ИзменитьТекстСообщения(ПараметрыТеста); 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);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти

View File

@ -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[ТипФайла]);
Возврат Ответ;
КонецФункции
// Изменить текст сообщения // Изменить текст сообщения
// Изменяет текст сущесствующего сообщения // Изменяет текст сущесствующего сообщения
// //

View File

@ -3249,6 +3249,7 @@
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2" , ПараметрыТеста); OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_MessageID", ПараметрыТеста); OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_MessageID", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста); OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Audio2" , ПараметрыТеста);
VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста); VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста);
VKTeams_ПереслатьСообщение(ПараметрыТеста); VKTeams_ПереслатьСообщение(ПараметрыТеста);
@ -3256,6 +3257,7 @@
VKTeams_ПереслатьФайл(ПараметрыТеста); VKTeams_ПереслатьФайл(ПараметрыТеста);
VKTeams_ИзменитьТекстСообщения(ПараметрыТеста); 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);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти

View File

@ -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"; НоваяСтрока.Библиотека = "vkteams";
НоваяСтрока.Модуль = "OPI_VKTeams"; НоваяСтрока.Модуль = "OPI_VKTeams";