mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2024-11-28 09:08:38 +02:00
VKT: Отправка файла
This commit is contained in:
parent
24363fa179
commit
c081ddffa2
8
.github/workflows/oint_test_full_ru.yml
vendored
8
.github/workflows/oint_test_full_ru.yml
vendored
@ -1129,14 +1129,14 @@ jobs:
|
||||
|
||||
|
||||
|
||||
- name: Общие методы
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВКТ_ОбщиеМетоды"
|
||||
|
||||
- name: Отправка сообщений
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВКТ_ОтправкаСообщений"
|
||||
|
||||
- name: Общие методы
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВКТ_ОбщиеМетоды"
|
||||
|
||||
- name: Записать логи
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -94,6 +94,31 @@ Function GetEvents(Val Token, Val LastID, Val Timeout = 0) Export
|
||||
|
||||
EndFunction
|
||||
|
||||
// Get information about file
|
||||
// Gets information about a file by ID
|
||||
//
|
||||
// Note
|
||||
// Method at API documentation: [GET /files/getInfo](@teams.vk.com/botapi/#/files/get_files_getInfo)
|
||||
//
|
||||
// Parameters:
|
||||
// Token - String - Bot token - token
|
||||
// FileID - String, Number - File ID - fileid
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Serialized JSON response from VK Teams
|
||||
Function GetFileInformation(Val Token, Val FileID) Export
|
||||
|
||||
URL = "/files/getInfo";
|
||||
Parameters = NormalizeMain(URL, Token);
|
||||
|
||||
OPI_Tools.AddField("fileId", FileID , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region MessageSending
|
||||
@ -137,6 +162,92 @@ Function SendTextMessage(Val Token
|
||||
|
||||
EndFunction
|
||||
|
||||
// SendFile
|
||||
// Sends the file to the chat
|
||||
//
|
||||
// Note
|
||||
// Method at API documentation: [POST /messages/sendFile](@teams.vk.com/botapi/#/messages/post_messages_sendFile)
|
||||
//
|
||||
// Parameters:
|
||||
// Token - String - Bot token - token
|
||||
// ChatID - String, Number - Chat ID for sending - chatid
|
||||
// File - BinaryData, String - File for sending - file
|
||||
// Text - String - File caption - text
|
||||
// FileName - String - Displayed file name - filename
|
||||
// Markup - String - Markup type for message text: MarkdownV2 or HTML - parsemod
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Serialized JSON response from VK Teams
|
||||
Function SendFile(Val Token
|
||||
, Val ChatID
|
||||
, Val File
|
||||
, Val Text = ""
|
||||
, Val FileName = ""
|
||||
, Val Markup = "MarkdownV2") Export
|
||||
|
||||
URL = "/messages/sendFile";
|
||||
Parameters = NormalizeMain(URL, Token);
|
||||
|
||||
OPI_Tools.AddField("chatId" , ChatID , "String" , Parameters);
|
||||
OPI_Tools.AddField("caption" , Text , "String" , Parameters);
|
||||
OPI_Tools.AddField("parseMode" , Markup , "String" , Parameters);
|
||||
|
||||
If TypeOf(File) = Type("String") Then
|
||||
FileObject = New File(File);
|
||||
DisplayedName = FileObject.Name;
|
||||
Else
|
||||
DisplayedName = "file";
|
||||
EndIf;
|
||||
|
||||
OPI_TypeConversion.GetBinaryData(File);
|
||||
DisplayedName = ?(ValueIsFilled(FileName), FileName, DisplayedName);
|
||||
|
||||
Files = New Map;
|
||||
Files.Insert("file|" + DisplayedName, File);
|
||||
|
||||
Response = OPI_Tools.PostMultipart(URL, Parameters, Files, "");
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Resend file
|
||||
// Sends a previously uploaded file by ID
|
||||
//
|
||||
// Note
|
||||
// Method at API documentation: [GET /messages/sendFile](@teams.vk.com/botapi/#/messages/get_messages_sendFile)
|
||||
//
|
||||
// Parameters:
|
||||
// Token - String - Bot token - token
|
||||
// ChatID - String, Number - Chat ID for sending - chatid
|
||||
// FileID - String, Number - File ID to send - fileid
|
||||
// Text - String - File caption - text
|
||||
// FileName - String - Displayed file name - filename
|
||||
// Markup - String - Markup type for message text: MarkdownV2 or HTML - parsemod
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Serialized JSON response from VK Teams
|
||||
Function ResendFile(Val Token
|
||||
, Val ChatID
|
||||
, Val FileID
|
||||
, Val Text = ""
|
||||
, Val FileName = ""
|
||||
, Val Markup = "MarkdownV2") Export
|
||||
|
||||
URL = "/messages/sendFile";
|
||||
Parameters = NormalizeMain(URL, Token);
|
||||
|
||||
OPI_Tools.AddField("chatId" , ChatID , "String", Parameters);
|
||||
OPI_Tools.AddField("caption" , Text , "String", Parameters);
|
||||
OPI_Tools.AddField("parseMode" , Markup , "String", Parameters);
|
||||
OPI_Tools.AddField("fileId" , FileID , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Forward message
|
||||
// Forwards an existing message to the current dialog box
|
||||
//
|
||||
|
@ -3232,10 +3232,12 @@ EndProcedure
|
||||
Procedure VKT_CommonMethods() Export
|
||||
|
||||
TestParameters = New Structure;
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_Token", TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_Token" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_FileID", TestParameters);
|
||||
|
||||
VkTeams_CheckToken(TestParameters);
|
||||
VkTeams_GetEvents(TestParameters);
|
||||
VKTeams_GetFileInformation(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@ -3246,9 +3248,12 @@ Procedure VKT_MessagesSending() Export
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_MessageID", TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
|
||||
|
||||
VkTeams_SendTextMessage(TestParameters);
|
||||
VKTeams_ForwardMessage(TestParameters);
|
||||
VKTeams_SendFile(TestParameters);
|
||||
VKTeams_ResendFile(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@ -3963,6 +3968,14 @@ Procedure Check_VKTMessage(Val Result)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure Check_VKTFile(Val Result)
|
||||
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["ok"]).Равно(True);
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["type"]).Заполнено();
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["size"]).Заполнено();
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region AtomicTests
|
||||
@ -10334,6 +10347,81 @@ Procedure VKTeams_ForwardMessage(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure VKTeams_SendFile(FunctionParameters)
|
||||
|
||||
Token = FunctionParameters["VkTeams_Token"];
|
||||
ChatID = FunctionParameters["VkTeams_ChatID"];
|
||||
Text = "File caption";
|
||||
|
||||
File = FunctionParameters["Document"]; // URL
|
||||
FilePath = GetTempFileName("docx"); // Path
|
||||
|
||||
CopyFile(File, FilePath);
|
||||
|
||||
FileBD = New BinaryData(FilePath); // Binary
|
||||
|
||||
Result = OPI_VKTeams.SendFile(Token, ChatID, File);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendFile (URL)", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result); // SKIP
|
||||
|
||||
Result = OPI_VKTeams.SendFile(Token, ChatID, FilePath, Text);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendFile (Path)", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result); // SKIP
|
||||
|
||||
Result = OPI_VKTeams.SendFile(Token, ChatID, File, Text, "ImportantDocument.docx");
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendFile", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result);
|
||||
|
||||
DeleteFiles(FilePath);
|
||||
|
||||
FileID = Result["fileId"];
|
||||
OPI_TestDataRetrieval.WriteParameter("VkTeams_FileID", FileID);
|
||||
FunctionParameters.Insert("VkTeams_FileID", FileID);
|
||||
|
||||
OPI_Tools.Pause(5);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure VKTeams_ResendFile(FunctionParameters)
|
||||
|
||||
Token = FunctionParameters["VkTeams_Token"];
|
||||
ChatID = FunctionParameters["VkTeams_ChatID"];
|
||||
FileID = FunctionParameters["VkTeams_FileID"];
|
||||
Text = "File caption";
|
||||
|
||||
Result = OPI_VKTeams.ResendFile(Token, ChatID, FileID, Text, "SameDoc.docx");
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "ResendFile", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure VKTeams_GetFileInformation(FunctionParameters)
|
||||
|
||||
Token = FunctionParameters["VkTeams_Token"];
|
||||
FileID = FunctionParameters["VkTeams_FileID"];
|
||||
|
||||
Result = OPI_VKTeams.GetFileInformation(Token, FileID);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetFileInformation", "VkTeams");
|
||||
|
||||
Check_VKTFile(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
@ -237,8 +237,8 @@ Function GetTestTable() Export
|
||||
NewTest(TestTable, "B24_DepartmentsManagment" , "Departments managment" , Bitrix);
|
||||
NewTest(TestTable, "B2_UsersManagment" , "Users managment" , Bitrix);
|
||||
|
||||
NewTest(TestTable, "VKT_CommonMethods" , "Common methods" , VKT);
|
||||
NewTest(TestTable, "VKT_MessagesSending" , "Messages sending" , VKT);
|
||||
NewTest(TestTable, "VKT_CommonMethods" , "Common methods" , VKT);
|
||||
|
||||
Return TestTable;
|
||||
|
||||
|
@ -237,8 +237,8 @@ Function GetTestTable() Export
|
||||
NewTest(TestTable, "B24_DepartmentsManagment" , "Departments managment" , Bitrix);
|
||||
NewTest(TestTable, "B2_UsersManagment" , "Users managment" , Bitrix);
|
||||
|
||||
NewTest(TestTable, "VKT_CommonMethods" , "Common methods" , VKT);
|
||||
NewTest(TestTable, "VKT_MessagesSending" , "Messages sending" , VKT);
|
||||
NewTest(TestTable, "VKT_CommonMethods" , "Common methods" , VKT);
|
||||
|
||||
Return TestTable;
|
||||
|
||||
|
@ -3232,10 +3232,12 @@ EndProcedure
|
||||
Procedure VKT_CommonMethods() Export
|
||||
|
||||
TestParameters = New Structure;
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_Token", TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_Token" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_FileID", TestParameters);
|
||||
|
||||
VkTeams_CheckToken(TestParameters);
|
||||
VkTeams_GetEvents(TestParameters);
|
||||
VKTeams_GetFileInformation(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@ -3246,9 +3248,12 @@ Procedure VKT_MessagesSending() Export
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_ChatID2" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("VkTeams_MessageID", TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Document" , TestParameters);
|
||||
|
||||
VkTeams_SendTextMessage(TestParameters);
|
||||
VKTeams_ForwardMessage(TestParameters);
|
||||
VKTeams_SendFile(TestParameters);
|
||||
VKTeams_ResendFile(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@ -3963,6 +3968,14 @@ Procedure Check_VKTMessage(Val Result)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure Check_VKTFile(Val Result)
|
||||
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["ok"]).Равно(True);
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["type"]).Заполнено();
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["size"]).Заполнено();
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region AtomicTests
|
||||
@ -10334,6 +10347,81 @@ Procedure VKTeams_ForwardMessage(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure VKTeams_SendFile(FunctionParameters)
|
||||
|
||||
Token = FunctionParameters["VkTeams_Token"];
|
||||
ChatID = FunctionParameters["VkTeams_ChatID"];
|
||||
Text = "File caption";
|
||||
|
||||
File = FunctionParameters["Document"]; // URL
|
||||
FilePath = GetTempFileName("docx"); // Path
|
||||
|
||||
FileCopy(File, FilePath);
|
||||
|
||||
FileBD = New BinaryData(FilePath); // Binary
|
||||
|
||||
Result = OPI_VKTeams.SendFile(Token, ChatID, File);
|
||||
|
||||
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "SendFile (URL)", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result); // SKIP
|
||||
|
||||
Result = OPI_VKTeams.SendFile(Token, ChatID, FilePath, Text);
|
||||
|
||||
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "SendFile (Path)", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result); // SKIP
|
||||
|
||||
Result = OPI_VKTeams.SendFile(Token, ChatID, File, Text, "ImportantDocument.docx");
|
||||
|
||||
// END
|
||||
|
||||
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "SendFile", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result);
|
||||
|
||||
DeleteFiles(FilePath);
|
||||
|
||||
FileID = Result["fileId"];
|
||||
OPI_TestDataRetrieval.WriteParameter("VkTeams_FileID", FileID);
|
||||
FunctionParameters.Insert("VkTeams_FileID", FileID);
|
||||
|
||||
OPI_Tools.Pause(5);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure VKTeams_ResendFile(FunctionParameters)
|
||||
|
||||
Token = FunctionParameters["VkTeams_Token"];
|
||||
ChatID = FunctionParameters["VkTeams_ChatID"];
|
||||
FileID = FunctionParameters["VkTeams_FileID"];
|
||||
Text = "File caption";
|
||||
|
||||
Result = OPI_VKTeams.ResendFile(Token, ChatID, FileID, Text, "SameDoc.docx");
|
||||
|
||||
// END
|
||||
|
||||
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "ResendFile", "VkTeams");
|
||||
|
||||
Check_VKTMessage(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure VKTeams_GetFileInformation(FunctionParameters)
|
||||
|
||||
Token = FunctionParameters["VkTeams_Token"];
|
||||
FileID = FunctionParameters["VkTeams_FileID"];
|
||||
|
||||
Result = OPI_VKTeams.GetFileInformation(Token, FileID);
|
||||
|
||||
// END
|
||||
|
||||
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetFileInformation", "VkTeams");
|
||||
|
||||
Check_VKTFile(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
@ -94,6 +94,31 @@ Function GetEvents(Val Token, Val LastID, Val Timeout = 0) Export
|
||||
|
||||
EndFunction
|
||||
|
||||
// Get information about file
|
||||
// Gets information about a file by ID
|
||||
//
|
||||
// Note
|
||||
// Method at API documentation: [GET /files/getInfo](@teams.vk.com/botapi/#/files/get_files_getInfo)
|
||||
//
|
||||
// Parameters:
|
||||
// Token - String - Bot token - token
|
||||
// FileID - String, Number - File ID - fileid
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Serialized JSON response from VK Teams
|
||||
Function GetFileInformation(Val Token, Val FileID) Export
|
||||
|
||||
URL = "/files/getInfo";
|
||||
Parameters = NormalizeMain(URL, Token);
|
||||
|
||||
OPI_Tools.AddField("fileId", FileID , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region MessageSending
|
||||
@ -137,6 +162,92 @@ Function SendTextMessage(Val Token
|
||||
|
||||
EndFunction
|
||||
|
||||
// SendFile
|
||||
// Sends the file to the chat
|
||||
//
|
||||
// Note
|
||||
// Method at API documentation: [POST /messages/sendFile](@teams.vk.com/botapi/#/messages/post_messages_sendFile)
|
||||
//
|
||||
// Parameters:
|
||||
// Token - String - Bot token - token
|
||||
// ChatID - String, Number - Chat ID for sending - chatid
|
||||
// File - BinaryData, String - File for sending - file
|
||||
// Text - String - File caption - text
|
||||
// FileName - String - Displayed file name - filename
|
||||
// Markup - String - Markup type for message text: MarkdownV2 or HTML - parsemod
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Serialized JSON response from VK Teams
|
||||
Function SendFile(Val Token
|
||||
, Val ChatID
|
||||
, Val File
|
||||
, Val Text = ""
|
||||
, Val FileName = ""
|
||||
, Val Markup = "MarkdownV2") Export
|
||||
|
||||
URL = "/messages/sendFile";
|
||||
Parameters = NormalizeMain(URL, Token);
|
||||
|
||||
OPI_Tools.AddField("chatId" , ChatID , "String" , Parameters);
|
||||
OPI_Tools.AddField("caption" , Text , "String" , Parameters);
|
||||
OPI_Tools.AddField("parseMode" , Markup , "String" , Parameters);
|
||||
|
||||
If TypeOf(File) = Type("String") Then
|
||||
FileObject = New File(File);
|
||||
DisplayedName = FileObject.Name;
|
||||
Else
|
||||
DisplayedName = "file";
|
||||
EndIf;
|
||||
|
||||
OPI_TypeConversion.GetBinaryData(File);
|
||||
DisplayedName = ?(ValueIsFilled(FileName), FileName, DisplayedName);
|
||||
|
||||
Files = New Map;
|
||||
Files.Insert("file|" + DisplayedName, File);
|
||||
|
||||
Response = OPI_Tools.PostMultipart(URL, Parameters, Files, "");
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Resend file
|
||||
// Sends a previously uploaded file by ID
|
||||
//
|
||||
// Note
|
||||
// Method at API documentation: [GET /messages/sendFile](@teams.vk.com/botapi/#/messages/get_messages_sendFile)
|
||||
//
|
||||
// Parameters:
|
||||
// Token - String - Bot token - token
|
||||
// ChatID - String, Number - Chat ID for sending - chatid
|
||||
// FileID - String, Number - File ID to send - fileid
|
||||
// Text - String - File caption - text
|
||||
// FileName - String - Displayed file name - filename
|
||||
// Markup - String - Markup type for message text: MarkdownV2 or HTML - parsemod
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - Serialized JSON response from VK Teams
|
||||
Function ResendFile(Val Token
|
||||
, Val ChatID
|
||||
, Val FileID
|
||||
, Val Text = ""
|
||||
, Val FileName = ""
|
||||
, Val Markup = "MarkdownV2") Export
|
||||
|
||||
URL = "/messages/sendFile";
|
||||
Parameters = NormalizeMain(URL, Token);
|
||||
|
||||
OPI_Tools.AddField("chatId" , ChatID , "String", Parameters);
|
||||
OPI_Tools.AddField("caption" , Text , "String", Parameters);
|
||||
OPI_Tools.AddField("parseMode" , Markup , "String", Parameters);
|
||||
OPI_Tools.AddField("fileId" , FileID , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Forward message
|
||||
// Forwards an existing message to the current dialog box
|
||||
//
|
||||
|
@ -52,6 +52,27 @@
|
||||
NewLine.Область = "Common methods";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "GetFileInformation";
|
||||
NewLine.МетодПоиска = "GETFILEINFORMATION";
|
||||
NewLine.Параметр = "--token";
|
||||
NewLine.Описание = "Bot token";
|
||||
NewLine.Область = "Common methods";
|
||||
NewLine.ОписаниеМетода = "Gets information about a file by ID";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "GetFileInformation";
|
||||
NewLine.МетодПоиска = "GETFILEINFORMATION";
|
||||
NewLine.Параметр = "--fileid";
|
||||
NewLine.Описание = "File ID";
|
||||
NewLine.Область = "Common methods";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
@ -113,6 +134,128 @@
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendFile";
|
||||
NewLine.МетодПоиска = "SENDFILE";
|
||||
NewLine.Параметр = "--token";
|
||||
NewLine.Описание = "Bot token";
|
||||
NewLine.Область = "Message sending";
|
||||
NewLine.ОписаниеМетода = "Sends the file to the chat";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendFile";
|
||||
NewLine.МетодПоиска = "SENDFILE";
|
||||
NewLine.Параметр = "--chatid";
|
||||
NewLine.Описание = "Chat ID for sending";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendFile";
|
||||
NewLine.МетодПоиска = "SENDFILE";
|
||||
NewLine.Параметр = "--file";
|
||||
NewLine.Описание = "File for sending";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendFile";
|
||||
NewLine.МетодПоиска = "SENDFILE";
|
||||
NewLine.Параметр = "--text";
|
||||
NewLine.Описание = "File caption (optional, def. val. - Empty value)";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendFile";
|
||||
NewLine.МетодПоиска = "SENDFILE";
|
||||
NewLine.Параметр = "--filename";
|
||||
NewLine.Описание = "Displayed file name (optional, def. val. - Empty value)";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "SendFile";
|
||||
NewLine.МетодПоиска = "SENDFILE";
|
||||
NewLine.Параметр = "--parsemod";
|
||||
NewLine.Описание = "Markup type for message text: MarkdownV2 or HTML (optional, def. val. - MarkdownV2)";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "ResendFile";
|
||||
NewLine.МетодПоиска = "RESENDFILE";
|
||||
NewLine.Параметр = "--token";
|
||||
NewLine.Описание = "Bot token";
|
||||
NewLine.Область = "Message sending";
|
||||
NewLine.ОписаниеМетода = "Sends a previously uploaded file by ID";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "ResendFile";
|
||||
NewLine.МетодПоиска = "RESENDFILE";
|
||||
NewLine.Параметр = "--chatid";
|
||||
NewLine.Описание = "Chat ID for sending";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "ResendFile";
|
||||
NewLine.МетодПоиска = "RESENDFILE";
|
||||
NewLine.Параметр = "--fileid";
|
||||
NewLine.Описание = "File ID to send";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "ResendFile";
|
||||
NewLine.МетодПоиска = "RESENDFILE";
|
||||
NewLine.Параметр = "--text";
|
||||
NewLine.Описание = "File caption (optional, def. val. - Empty value)";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "ResendFile";
|
||||
NewLine.МетодПоиска = "RESENDFILE";
|
||||
NewLine.Параметр = "--filename";
|
||||
NewLine.Описание = "Displayed file name (optional, def. val. - Empty value)";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
NewLine.Метод = "ResendFile";
|
||||
NewLine.МетодПоиска = "RESENDFILE";
|
||||
NewLine.Параметр = "--parsemod";
|
||||
NewLine.Описание = "Markup type for message text: MarkdownV2 or HTML (optional, def. val. - MarkdownV2)";
|
||||
NewLine.Область = "Message sending";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "vkteams";
|
||||
NewLine.Модуль = "OPI_VKTeams";
|
||||
|
@ -94,6 +94,31 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить информацию о файле
|
||||
// Получает информацию о файле по его ID
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [GET /files/getInfo](@teams.vk.com/botapi/#/files/get_files_getInfo)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен бота - token
|
||||
// IDФайла - Строка, Число - ID Файла - fileid
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
|
||||
Функция ПолучитьИнформациюОФайле(Знач Токен, Знач IDФайла) Экспорт
|
||||
|
||||
URL = "/files/getInfo";
|
||||
Параметры = НормализоватьОснову(URL, Токен);
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("fileId", IDФайла , "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОтправкаСообщений
|
||||
@ -137,6 +162,92 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Отправить файл
|
||||
// Отправляет файл в чат
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [POST /messages/sendFile](@teams.vk.com/botapi/#/messages/post_messages_sendFile)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен бота - token
|
||||
// IDЧата - Строка, Число - ID чата для отправки файла - chatid
|
||||
// Файл - ДвоичныеДанные, Строка - Файл для отправки - file
|
||||
// Текст - Строка - Подпись к файлу - text
|
||||
// ИмяФайла - Строка - Отображаемое имя файла - filename
|
||||
// Разметка - Строка - Вид разметки для текста сообщения: MarkdownV2 или HTML - parsemod
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
|
||||
Функция ОтправитьФайл(Знач Токен
|
||||
, Знач IDЧата
|
||||
, Знач Файл
|
||||
, Знач Текст = ""
|
||||
, Знач ИмяФайла = ""
|
||||
, Знач Разметка = "MarkdownV2") Экспорт
|
||||
|
||||
URL = "/messages/sendFile";
|
||||
Параметры = НормализоватьОснову(URL, Токен);
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка" , Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("caption" , Текст , "Строка" , Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("parseMode" , Разметка , "Строка" , Параметры);
|
||||
|
||||
Если ТипЗнч(Файл) = Тип("Строка") Тогда
|
||||
ФайлОбъект = Новый Файл(Файл);
|
||||
ИспользуемоеИмя = ФайлОбъект.Имя;
|
||||
Иначе
|
||||
ИспользуемоеИмя = "file";
|
||||
КонецЕсли;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
|
||||
ИспользуемоеИмя = ?(ЗначениеЗаполнено(ИмяФайла), ИмяФайла, ИспользуемоеИмя);
|
||||
|
||||
Файлы = Новый Соответствие;
|
||||
Файлы.Вставить("file|" + ИспользуемоеИмя, Файл);
|
||||
|
||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы, "");
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Переслать файл
|
||||
// Отправляет ранее загруженный файл по его ID
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [GET /messages/sendFile](@teams.vk.com/botapi/#/messages/get_messages_sendFile)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен бота - token
|
||||
// IDЧата - Строка, Число - ID чата для отправки файла - chatid
|
||||
// IDФайла - Строка, Число - ID Файла для отправки - fileid
|
||||
// Текст - Строка - Подпись к файлу - text
|
||||
// ИмяФайла - Строка - Отображаемое имя файла - filename
|
||||
// Разметка - Строка - Вид разметки для текста сообщения: MarkdownV2 или HTML - parsemod
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
|
||||
Функция ПереслатьФайл(Знач Токен
|
||||
, Знач IDЧата
|
||||
, Знач IDФайла
|
||||
, Знач Текст = ""
|
||||
, Знач ИмяФайла = ""
|
||||
, Знач Разметка = "MarkdownV2") Экспорт
|
||||
|
||||
URL = "/messages/sendFile";
|
||||
Параметры = НормализоватьОснову(URL, Токен);
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("caption" , Текст , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("parseMode" , Разметка, "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("fileId" , IDФайла , "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Переслать сообщение
|
||||
// Переслыает существующее сообщение в текущий диалог
|
||||
//
|
||||
|
@ -3232,10 +3232,12 @@
|
||||
Процедура ВКТ_ОбщиеМетоды() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_FileID", ПараметрыТеста);
|
||||
|
||||
VkTeams_ПроверитьТокен(ПараметрыТеста);
|
||||
VkTeams_ПолучитьСобытия(ПараметрыТеста);
|
||||
VKTeams_ПолучитьИнформациюОФайле(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -3246,9 +3248,12 @@
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_MessageID", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
|
||||
|
||||
VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста);
|
||||
VKTeams_ПереслатьСообщение(ПараметрыТеста);
|
||||
VKTeams_ОтправитьФайл(ПараметрыТеста);
|
||||
VKTeams_ПереслатьФайл(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -3963,6 +3968,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Проверка_ВКТФайл(Знач Результат)
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["type"]).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["size"]).Заполнено();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область АтомарныеТесты
|
||||
@ -10334,6 +10347,81 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура VKTeams_ОтправитьФайл(ПараметрыФункции)
|
||||
|
||||
Токен = ПараметрыФункции["VkTeams_Token"];
|
||||
IDЧата = ПараметрыФункции["VkTeams_ChatID"];
|
||||
Текст = "Подпись к файлу";
|
||||
|
||||
Файл = ПараметрыФункции["Document"]; // URL
|
||||
ФайлПуть = ПолучитьИмяВременногоФайла("docx"); // Путь
|
||||
|
||||
КопироватьФайл(Файл, ФайлПуть);
|
||||
|
||||
ФайлДД = Новый ДвоичныеДанные(ФайлПуть); // Двоичные
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьФайл(Токен, IDЧата, Файл);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл (URL)", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат); // SKIP
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьФайл(Токен, IDЧата, ФайлПуть, Текст);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл (Путь)", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат); // SKIP
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьФайл(Токен, IDЧата, Файл, Текст, "ВажныйДокумент.docx");
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат);
|
||||
|
||||
УдалитьФайлы(ФайлПуть);
|
||||
|
||||
IDФайла = Результат["fileId"];
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VkTeams_FileID", IDФайла);
|
||||
ПараметрыФункции.Вставить("VkTeams_FileID", IDФайла);
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура VKTeams_ПереслатьФайл(ПараметрыФункции)
|
||||
|
||||
Токен = ПараметрыФункции["VkTeams_Token"];
|
||||
IDЧата = ПараметрыФункции["VkTeams_ChatID"];
|
||||
IDФайла = ПараметрыФункции["VkTeams_FileID"];
|
||||
Текст = "Подпись к файлу";
|
||||
|
||||
Результат = OPI_VKTeams.ПереслатьФайл(Токен, IDЧата, IDФайла, Текст, "ТотЖеДокумент.docx");
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПереслатьФайл", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура VKTeams_ПолучитьИнформациюОФайле(ПараметрыФункции)
|
||||
|
||||
Токен = ПараметрыФункции["VkTeams_Token"];
|
||||
IDФайла = ПараметрыФункции["VkTeams_FileID"];
|
||||
|
||||
Результат = OPI_VKTeams.ПолучитьИнформациюОФайле(Токен, IDФайла);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОФайле", "VkTeams");
|
||||
|
||||
Проверка_ВКТФайл(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -237,8 +237,8 @@
|
||||
НовыйТест(ТаблицаТестов, "Б24_УправлениеПодразделениями" , "Управление подразделениями" , Битрикс);
|
||||
НовыйТест(ТаблицаТестов, "Б24_УправлениеПользователями" , "Управление пользователями" , Битрикс);
|
||||
|
||||
НовыйТест(ТаблицаТестов, "ВКТ_ОбщиеМетоды" , "Общие методы" , ВКТ);
|
||||
НовыйТест(ТаблицаТестов, "ВКТ_ОтправкаСообщений" , "Отправка сообщений" , ВКТ);
|
||||
НовыйТест(ТаблицаТестов, "ВКТ_ОбщиеМетоды" , "Общие методы" , ВКТ);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
|
@ -94,6 +94,31 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить информацию о файле
|
||||
// Получает информацию о файле по его ID
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [GET /files/getInfo](@teams.vk.com/botapi/#/files/get_files_getInfo)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен бота - token
|
||||
// IDФайла - Строка, Число - ID Файла - fileid
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
|
||||
Функция ПолучитьИнформациюОФайле(Знач Токен, Знач IDФайла) Экспорт
|
||||
|
||||
URL = "/files/getInfo";
|
||||
Параметры = НормализоватьОснову(URL, Токен);
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("fileId", IDФайла , "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОтправкаСообщений
|
||||
@ -137,6 +162,92 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Отправить файл
|
||||
// Отправляет файл в чат
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [POST /messages/sendFile](@teams.vk.com/botapi/#/messages/post_messages_sendFile)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен бота - token
|
||||
// IDЧата - Строка, Число - ID чата для отправки файла - chatid
|
||||
// Файл - ДвоичныеДанные, Строка - Файл для отправки - file
|
||||
// Текст - Строка - Подпись к файлу - text
|
||||
// ИмяФайла - Строка - Отображаемое имя файла - filename
|
||||
// Разметка - Строка - Вид разметки для текста сообщения: MarkdownV2 или HTML - parsemod
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
|
||||
Функция ОтправитьФайл(Знач Токен
|
||||
, Знач IDЧата
|
||||
, Знач Файл
|
||||
, Знач Текст = ""
|
||||
, Знач ИмяФайла = ""
|
||||
, Знач Разметка = "MarkdownV2") Экспорт
|
||||
|
||||
URL = "/messages/sendFile";
|
||||
Параметры = НормализоватьОснову(URL, Токен);
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка" , Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("caption" , Текст , "Строка" , Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("parseMode" , Разметка , "Строка" , Параметры);
|
||||
|
||||
Если ТипЗнч(Файл) = Тип("Строка") Тогда
|
||||
ФайлОбъект = Новый Файл(Файл);
|
||||
ИспользуемоеИмя = ФайлОбъект.Имя;
|
||||
Иначе
|
||||
ИспользуемоеИмя = "file";
|
||||
КонецЕсли;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
|
||||
ИспользуемоеИмя = ?(ЗначениеЗаполнено(ИмяФайла), ИмяФайла, ИспользуемоеИмя);
|
||||
|
||||
Файлы = Новый Соответствие;
|
||||
Файлы.Вставить("file|" + ИспользуемоеИмя, Файл);
|
||||
|
||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы, "");
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Переслать файл
|
||||
// Отправляет ранее загруженный файл по его ID
|
||||
//
|
||||
// Примечание:
|
||||
// Метод в документации API: [GET /messages/sendFile](@teams.vk.com/botapi/#/messages/get_messages_sendFile)
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен бота - token
|
||||
// IDЧата - Строка, Число - ID чата для отправки файла - chatid
|
||||
// IDФайла - Строка, Число - ID Файла для отправки - fileid
|
||||
// Текст - Строка - Подпись к файлу - text
|
||||
// ИмяФайла - Строка - Отображаемое имя файла - filename
|
||||
// Разметка - Строка - Вид разметки для текста сообщения: MarkdownV2 или HTML - parsemod
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
|
||||
Функция ПереслатьФайл(Знач Токен
|
||||
, Знач IDЧата
|
||||
, Знач IDФайла
|
||||
, Знач Текст = ""
|
||||
, Знач ИмяФайла = ""
|
||||
, Знач Разметка = "MarkdownV2") Экспорт
|
||||
|
||||
URL = "/messages/sendFile";
|
||||
Параметры = НормализоватьОснову(URL, Токен);
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("caption" , Текст , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("parseMode" , Разметка, "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("fileId" , IDФайла , "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Переслать сообщение
|
||||
// Переслыает существующее сообщение в текущий диалог
|
||||
//
|
||||
|
@ -237,8 +237,8 @@
|
||||
НовыйТест(ТаблицаТестов, "Б24_УправлениеПодразделениями" , "Управление подразделениями" , Битрикс);
|
||||
НовыйТест(ТаблицаТестов, "Б24_УправлениеПользователями" , "Управление пользователями" , Битрикс);
|
||||
|
||||
НовыйТест(ТаблицаТестов, "ВКТ_ОбщиеМетоды" , "Общие методы" , ВКТ);
|
||||
НовыйТест(ТаблицаТестов, "ВКТ_ОтправкаСообщений" , "Отправка сообщений" , ВКТ);
|
||||
НовыйТест(ТаблицаТестов, "ВКТ_ОбщиеМетоды" , "Общие методы" , ВКТ);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
|
@ -3232,10 +3232,12 @@
|
||||
Процедура ВКТ_ОбщиеМетоды() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_FileID", ПараметрыТеста);
|
||||
|
||||
VkTeams_ПроверитьТокен(ПараметрыТеста);
|
||||
VkTeams_ПолучитьСобытия(ПараметрыТеста);
|
||||
VKTeams_ПолучитьИнформациюОФайле(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -3246,9 +3248,12 @@
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID2" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_MessageID", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
|
||||
|
||||
VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста);
|
||||
VKTeams_ПереслатьСообщение(ПараметрыТеста);
|
||||
VKTeams_ОтправитьФайл(ПараметрыТеста);
|
||||
VKTeams_ПереслатьФайл(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -3963,6 +3968,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Проверка_ВКТФайл(Знач Результат)
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["type"]).Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["size"]).Заполнено();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область АтомарныеТесты
|
||||
@ -10334,6 +10347,81 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура VKTeams_ОтправитьФайл(ПараметрыФункции)
|
||||
|
||||
Токен = ПараметрыФункции["VkTeams_Token"];
|
||||
IDЧата = ПараметрыФункции["VkTeams_ChatID"];
|
||||
Текст = "Подпись к файлу";
|
||||
|
||||
Файл = ПараметрыФункции["Document"]; // URL
|
||||
ФайлПуть = ПолучитьИмяВременногоФайла("docx"); // Путь
|
||||
|
||||
КопироватьФайл(Файл, ФайлПуть);
|
||||
|
||||
ФайлДД = Новый ДвоичныеДанные(ФайлПуть); // Двоичные
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьФайл(Токен, IDЧата, Файл);
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл (URL)", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат); // SKIP
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьФайл(Токен, IDЧата, ФайлПуть, Текст);
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл (Путь)", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат); // SKIP
|
||||
|
||||
Результат = OPI_VKTeams.ОтправитьФайл(Токен, IDЧата, Файл, Текст, "ВажныйДокумент.docx");
|
||||
|
||||
// END
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат);
|
||||
|
||||
УдалитьФайлы(ФайлПуть);
|
||||
|
||||
IDФайла = Результат["fileId"];
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("VkTeams_FileID", IDФайла);
|
||||
ПараметрыФункции.Вставить("VkTeams_FileID", IDФайла);
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура VKTeams_ПереслатьФайл(ПараметрыФункции)
|
||||
|
||||
Токен = ПараметрыФункции["VkTeams_Token"];
|
||||
IDЧата = ПараметрыФункции["VkTeams_ChatID"];
|
||||
IDФайла = ПараметрыФункции["VkTeams_FileID"];
|
||||
Текст = "Подпись к файлу";
|
||||
|
||||
Результат = OPI_VKTeams.ПереслатьФайл(Токен, IDЧата, IDФайла, Текст, "ТотЖеДокумент.docx");
|
||||
|
||||
// END
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПереслатьФайл", "VkTeams");
|
||||
|
||||
Проверка_ВКТСообщение(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура VKTeams_ПолучитьИнформациюОФайле(ПараметрыФункции)
|
||||
|
||||
Токен = ПараметрыФункции["VkTeams_Token"];
|
||||
IDФайла = ПараметрыФункции["VkTeams_FileID"];
|
||||
|
||||
Результат = OPI_VKTeams.ПолучитьИнформациюОФайле(Токен, IDФайла);
|
||||
|
||||
// END
|
||||
|
||||
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОФайле", "VkTeams");
|
||||
|
||||
Проверка_ВКТФайл(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -52,6 +52,27 @@
|
||||
НоваяСтрока.Область = "Общие методы";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ПолучитьИнформациюОФайле";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОФАЙЛЕ";
|
||||
НоваяСтрока.Параметр = "--token";
|
||||
НоваяСтрока.Описание = "Токен бота";
|
||||
НоваяСтрока.Область = "Общие методы";
|
||||
НоваяСтрока.ОписаниеМетода = "Получает информацию о файле по его ID";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ПолучитьИнформациюОФайле";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОФАЙЛЕ";
|
||||
НоваяСтрока.Параметр = "--fileid";
|
||||
НоваяСтрока.Описание = "ID Файла";
|
||||
НоваяСтрока.Область = "Общие методы";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
@ -117,6 +138,128 @@
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--token";
|
||||
НоваяСтрока.Описание = "Токен бота";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
НоваяСтрока.ОписаниеМетода = "Отправляет файл в чат";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--chatid";
|
||||
НоваяСтрока.Описание = "ID чата для отправки файла";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--file";
|
||||
НоваяСтрока.Описание = "Файл для отправки";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--text";
|
||||
НоваяСтрока.Описание = "Подпись к файлу (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--filename";
|
||||
НоваяСтрока.Описание = "Отображаемое имя файла (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ОтправитьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--parsemod";
|
||||
НоваяСтрока.Описание = "Вид разметки для текста сообщения: MarkdownV2 или HTML (необяз. по ум. - MarkdownV2)";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ПереслатьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ПЕРЕСЛАТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--token";
|
||||
НоваяСтрока.Описание = "Токен бота";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
НоваяСтрока.ОписаниеМетода = "Отправляет ранее загруженный файл по его ID";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ПереслатьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ПЕРЕСЛАТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--chatid";
|
||||
НоваяСтрока.Описание = "ID чата для отправки файла";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ПереслатьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ПЕРЕСЛАТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--fileid";
|
||||
НоваяСтрока.Описание = "ID Файла для отправки";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ПереслатьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ПЕРЕСЛАТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--text";
|
||||
НоваяСтрока.Описание = "Подпись к файлу (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ПереслатьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ПЕРЕСЛАТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--filename";
|
||||
НоваяСтрока.Описание = "Отображаемое имя файла (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
НоваяСтрока.Метод = "ПереслатьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ПЕРЕСЛАТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--parsemod";
|
||||
НоваяСтрока.Описание = "Вид разметки для текста сообщения: MarkdownV2 или HTML (необяз. по ум. - MarkdownV2)";
|
||||
НоваяСтрока.Область = "Отправка сообщений";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "vkteams";
|
||||
НоваяСтрока.Модуль = "OPI_VKTeams";
|
||||
|
Loading…
Reference in New Issue
Block a user