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
|
EndFunction
|
||||||
|
|
||||||
// SendFile
|
// Send file
|
||||||
// Send disk file to chat
|
// Send disk file to chat
|
||||||
//
|
//
|
||||||
// Note
|
// Note
|
||||||
|
@ -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
|
||||||
//
|
//
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
//
|
//
|
||||||
|
@ -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:
|
||||||
|
@ -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";
|
||||||
|
@ -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_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);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
@ -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_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);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
@ -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";
|
||||||
|
Loading…
Reference in New Issue
Block a user