mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-01-12 04:34:10 +02:00
Преобразование OPI -> OInt (workflow)
This commit is contained in:
parent
0a8c9c13af
commit
c2ce72bf7d
195
.github/workflows/oint_test_Bitrix24.yml
vendored
Normal file
195
.github/workflows/oint_test_Bitrix24.yml
vendored
Normal file
@ -0,0 +1,195 @@
|
||||
|
||||
name: OINT | Тестирование Bitrix24
|
||||
|
||||
# Controls when the workflow will run
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
|
||||
Decode:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ always() }}
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Расшифровать тестовые данные
|
||||
run: gpg --quiet --batch --yes --decrypt --passphrase="$ENC_JSON" --output ./data.json ./data.json.gpg
|
||||
env:
|
||||
ENC_JSON: ${{ secrets.ENC_JSON }}
|
||||
- name: Записать тестовые данные в кэш
|
||||
uses: actions/cache/save@v3
|
||||
with:
|
||||
key: test-data
|
||||
path: ./data.json
|
||||
|
||||
Build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: otymko/setup-onescript@v1.4
|
||||
with:
|
||||
version: 1.9.0
|
||||
|
||||
- name: Установить asserts и 1testrunner
|
||||
run: |
|
||||
opm install asserts
|
||||
opm install 1testrunner
|
||||
|
||||
- name: Установить OInt
|
||||
run: |
|
||||
cd ./src/ru/OInt
|
||||
opm build
|
||||
opm install *.ospx
|
||||
|
||||
- name: Записать артефакт
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: oint
|
||||
path: ./src/ru/OInt/*.ospx
|
||||
|
||||
|
||||
Testing-Bitrix24:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Decode, Build]
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: otymko/setup-onescript@v1.4
|
||||
with:
|
||||
version: 1.9.0
|
||||
|
||||
- name: Получить тестовые данные из кэша
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: test-data
|
||||
path: ./data.json
|
||||
|
||||
- name: Установить asserts и 1testrunner
|
||||
run: |
|
||||
opm install asserts
|
||||
opm install 1testrunner
|
||||
|
||||
- name: Установить OInt
|
||||
run: |
|
||||
cd ./src/ru/OInt
|
||||
opm build
|
||||
opm install *.ospx
|
||||
|
||||
|
||||
|
||||
- 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 "Б24_РаботаСТокеном"
|
||||
|
||||
- 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 "Б24_СерверноеВремя"
|
||||
|
||||
- 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 "Б24_РаботаСНовостями"
|
||||
|
||||
- name: Записать логи
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
with:
|
||||
key: logs-Bitrix24
|
||||
path: ./docs/results/Bitrix24
|
||||
|
||||
|
||||
- name: Записать измененные данные
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
with:
|
||||
key: test-data_new
|
||||
path: ./data.json
|
||||
|
||||
Encode:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Bitrix24]
|
||||
if: ${{ always() }}
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Обновить данные в репозитории
|
||||
run: git pull https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
- name: Получить тестовые данные из кэша
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: test-data_new
|
||||
path: ./data.json
|
||||
|
||||
- name: Зашифровать данные обратно
|
||||
continue-on-error: false
|
||||
|
||||
run: |
|
||||
rm -f ./data.json.gpg
|
||||
gpg --batch --symmetric --cipher-algo AES256 --passphrase="$ENC_JSON" data.json
|
||||
rm -f ./data.json
|
||||
env:
|
||||
ENC_JSON: ${{ secrets.ENC_JSON }}
|
||||
|
||||
- name: Получить логи Bitrix24
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: logs-Bitrix24
|
||||
path: ./docs/results/Bitrix24
|
||||
|
||||
|
||||
- name: Очистка логов Bitrix24
|
||||
run: |
|
||||
curl -L \
|
||||
-X DELETE \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Bitrix24"
|
||||
|
||||
|
||||
- name: Записать данные
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_user_name: Vitaly the Alpaca (bot)
|
||||
commit_user_email: vitaly.the.alpaca@gmail.com
|
||||
commit_author: Vitaly the Alpaca <vitaly.the.alpaca@gmail.com>
|
||||
commit_message: Обновление зашифрованных данных по результатам тестов (workflow)
|
||||
|
||||
|
||||
Clear-Cache:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Bitrix24, Encode]
|
||||
if: ${{ always() }}
|
||||
steps:
|
||||
- name: Очистка основного кэша
|
||||
run: |
|
||||
curl -L \
|
||||
-X DELETE \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=test-data"
|
||||
|
||||
- name: Очистка кэша Google
|
||||
run: |
|
||||
curl -L \
|
||||
-X DELETE \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=test-data_google"
|
||||
|
||||
- name: Очистка кэша Twitter
|
||||
run: |
|
||||
curl -L \
|
||||
-X DELETE \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=test-data_new"
|
69
.github/workflows/oint_test_full.yml
vendored
69
.github/workflows/oint_test_full.yml
vendored
@ -1010,9 +1010,58 @@ jobs:
|
||||
key: logs-Dropbox
|
||||
path: ./docs/results/Dropbox
|
||||
|
||||
|
||||
Testing-Bitrix24:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Decode, Build]
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: otymko/setup-onescript@v1.4
|
||||
with:
|
||||
version: 1.9.0
|
||||
|
||||
- name: Получить тестовые данные из кэша
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: test-data
|
||||
path: ./data.json
|
||||
|
||||
- name: Установить asserts и 1testrunner
|
||||
run: |
|
||||
opm install asserts
|
||||
opm install 1testrunner
|
||||
|
||||
- name: Установить OInt
|
||||
run: |
|
||||
cd ./src/ru/OInt
|
||||
opm build
|
||||
opm install *.ospx
|
||||
|
||||
|
||||
|
||||
- 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 "Б24_РаботаСТокеном"
|
||||
|
||||
- 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 "Б24_СерверноеВремя"
|
||||
|
||||
- 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 "Б24_РаботаСНовостями"
|
||||
|
||||
- name: Записать логи
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
with:
|
||||
key: logs-Bitrix24
|
||||
path: ./docs/results/Bitrix24
|
||||
|
||||
Encode:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox]
|
||||
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24]
|
||||
if: ${{ always() }}
|
||||
permissions:
|
||||
contents: write
|
||||
@ -1248,6 +1297,22 @@ jobs:
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Dropbox"
|
||||
|
||||
- name: Получить логи Bitrix24
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: logs-Bitrix24
|
||||
path: ./docs/results/Bitrix24
|
||||
|
||||
|
||||
- name: Очистка логов Bitrix24
|
||||
run: |
|
||||
curl -L \
|
||||
-X DELETE \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Bitrix24"
|
||||
|
||||
|
||||
- name: Записать данные
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
@ -1260,7 +1325,7 @@ jobs:
|
||||
|
||||
Clear-Cache:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Encode]
|
||||
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Encode]
|
||||
if: ${{ always() }}
|
||||
steps:
|
||||
- name: Очистка основного кэша
|
||||
|
69
.github/workflows/oint_test_full_en.yml
vendored
69
.github/workflows/oint_test_full_en.yml
vendored
@ -1010,9 +1010,58 @@ jobs:
|
||||
key: logs-Dropbox
|
||||
path: ./docs/results/Dropbox
|
||||
|
||||
|
||||
Testing-Bitrix24:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Decode, Build]
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: otymko/setup-onescript@v1.4
|
||||
with:
|
||||
version: 1.9.0
|
||||
|
||||
- name: Получить тестовые данные из кэша
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: test-data
|
||||
path: ./data.json
|
||||
|
||||
- name: Установить asserts и 1testrunner
|
||||
run: |
|
||||
opm install asserts
|
||||
opm install 1testrunner
|
||||
|
||||
- name: Установить OInt
|
||||
run: |
|
||||
cd ./src/en/OInt
|
||||
opm build
|
||||
opm install *.ospx
|
||||
|
||||
|
||||
|
||||
- name: Token management
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_Tests.os "B24_TokenManagment"
|
||||
|
||||
- name: Server time
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_Tests.os "B24_ServerTime"
|
||||
|
||||
- name: Posts managment
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_Tests.os "B24_PostsManagment"
|
||||
|
||||
- name: Записать логи
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
with:
|
||||
key: logs-Bitrix24
|
||||
path: ./docs/results/Bitrix24
|
||||
|
||||
Encode:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox]
|
||||
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24]
|
||||
if: ${{ always() }}
|
||||
permissions:
|
||||
contents: write
|
||||
@ -1248,6 +1297,22 @@ jobs:
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Dropbox"
|
||||
|
||||
- name: Получить логи Bitrix24
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: logs-Bitrix24
|
||||
path: ./docs/results/Bitrix24
|
||||
|
||||
|
||||
- name: Очистка логов Bitrix24
|
||||
run: |
|
||||
curl -L \
|
||||
-X DELETE \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Bitrix24"
|
||||
|
||||
|
||||
- name: Записать данные
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
@ -1260,7 +1325,7 @@ jobs:
|
||||
|
||||
Clear-Cache:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Encode]
|
||||
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Encode]
|
||||
if: ${{ always() }}
|
||||
steps:
|
||||
- name: Очистка основного кэша
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,286 +1,286 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||
// Lib: Bitrix24
|
||||
// CLI: bitrix24
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:UnreachableCode-off
|
||||
// BSLLS:CommentedCode-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Uncomment if OneScript is executed
|
||||
#Use "../../tools"
|
||||
|
||||
#Region Public
|
||||
|
||||
#Region SettingsAndAdministartion
|
||||
|
||||
// Get app authentication link
|
||||
// Forms a link for authorization via the browser
|
||||
//
|
||||
// Parameters:
|
||||
// Domain - String - Current Bitrix URL (like 'portal.bitrix24.com')
|
||||
// ClientID - String - Client ID from app settings
|
||||
//
|
||||
// Returns:
|
||||
// String - URL for browser transition
|
||||
Function GetAppAuthLink(Val Domain, Val ClientID) Export
|
||||
|
||||
OPI_TypeConversion.GetLine(Domain);
|
||||
OPI_TypeConversion.GetLine(ClientID);
|
||||
|
||||
If Not StrStartsWith(Domain, "http") Then
|
||||
URL = "https://" + Domain;
|
||||
EndIf;
|
||||
|
||||
If Not StrEndsWith(URL, "/") Then
|
||||
URL = URL + "/";
|
||||
EndIf;
|
||||
|
||||
URL = URL + "oauth/authorize/?client_id=" + ClientID;
|
||||
|
||||
Return URL;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Get token
|
||||
// Get token by auth code
|
||||
//
|
||||
// Parameters:
|
||||
// ClientID - String - Client ID from app settings
|
||||
// ClientSecret - String - Client secret from app settings
|
||||
// Code - String - Code from browser auth page
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function GetToken(Val ClientID, Val ClientSecret, Val Code) Export
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Parameters = New Structure;
|
||||
OPI_Tools.AddField("grant_type" , "authorization_code", "String", Parameters);
|
||||
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
|
||||
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
|
||||
OPI_Tools.AddField("code" , Code , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Refresh token
|
||||
// Update token by refresh token
|
||||
//
|
||||
// Parameters:
|
||||
// ClientID - String - Client ID from app settings
|
||||
// ClientSecret - String - Client secret from app settings
|
||||
// Refresh - String - Refresh token
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function RefreshToken(Val ClientID, Val ClientSecret, Val Refresh) Export
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Parameters = New Structure;
|
||||
OPI_Tools.AddField("grant_type" , "refresh_token" , "String", Parameters);
|
||||
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
|
||||
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
|
||||
OPI_Tools.AddField("refresh_token", Refresh , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Server time
|
||||
// Get current server time
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function ServerTime(Val URL, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "server.time");
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region NewsFeed
|
||||
|
||||
// Create post.
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// Text - String - Text of post
|
||||
// Visibility - String - Array or a single post target (UA all, SG<X> work group, U<X> user, DR<X> depart., G<X> group)
|
||||
// Files - String - Data inложенandй, где toлюч > andмя file, value > path to file andдand дinоandчные Data
|
||||
// Title - String - Title
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function CreatePost(Val URL
|
||||
, Val Text
|
||||
, Val Visibility = "UA"
|
||||
, Val Files = ""
|
||||
, Val Title = ""
|
||||
, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "log.blogpost.add");
|
||||
OPI_Tools.AddField("POST_MESSAGE", Text , "String", Parameters);
|
||||
OPI_Tools.AddField("POST_TITLE" , Title, "String", Parameters);
|
||||
OPI_Tools.AddField("DEST" , Visibility , "Array", Parameters);
|
||||
|
||||
If ValueIsFilled(Files) Then
|
||||
|
||||
OPI_TypeConversion.GetCollection(Files);
|
||||
|
||||
ArrayOfFiles = NormalizeFiles(Files);
|
||||
|
||||
If Not ArrayOfFiles.Count() = 0 Then
|
||||
Parameters.Insert("FILES", ArrayOfFiles);
|
||||
EndIf;
|
||||
|
||||
EndIf;
|
||||
|
||||
Response = OPI_Tools.Post(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Delete post.
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// PostID - String, Number - Id of post to remove
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function DeletePost(Val URL, Val PostID, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "log.blogpost.delete");
|
||||
OPI_Tools.AddField("POST_ID", PostID, "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Post(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Internal
|
||||
|
||||
Function NormalizeAuth(URL, Val Token, Val Method = "")
|
||||
|
||||
OPI_TypeConversion.GetLine(URL);
|
||||
OPI_TypeConversion.GetLine(Token);
|
||||
|
||||
Parameters = New Structure;
|
||||
IsTokenAuth = ValueIsFilled(Token);
|
||||
|
||||
UncorrectItems = New Array;
|
||||
UncorrectItems.Add("https://");
|
||||
UncorrectItems.Add("http://");
|
||||
UncorrectItems.Add("www.");
|
||||
|
||||
For Each DeletedElement In UncorrectItems Do
|
||||
URL = StrReplace(URL, DeletedElement, "");
|
||||
EndDo;
|
||||
|
||||
URL = TrimAll(URL);
|
||||
|
||||
If Not StrEndsWith(URL, "/") Then
|
||||
URL = URL + "/";
|
||||
EndIf;
|
||||
|
||||
If IsTokenAuth Then
|
||||
|
||||
If Not StrEndsWith(URL, "rest/") Then
|
||||
URL = URL + "rest/";
|
||||
EndIf;
|
||||
|
||||
Parameters.Insert("auth", Token);
|
||||
|
||||
EndIf;
|
||||
|
||||
If ValueIsFilled(Method) Then
|
||||
URL = URL + TrimAll(Method);
|
||||
EndIf;
|
||||
|
||||
Return Parameters;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function NormalizeFiles(Val Files)
|
||||
|
||||
NormalizedFiles = New Array;
|
||||
|
||||
If Not TypeOf(Files) = Type("Map") Then
|
||||
Return NormalizedFiles;
|
||||
EndIf;
|
||||
|
||||
For Each File In Files Do
|
||||
|
||||
CurrentArray = New Array;
|
||||
CurrentFile = File.Value;
|
||||
CurrentName = File.Key;
|
||||
|
||||
OPI_TypeConversion.GetBinaryData(CurrentFile);
|
||||
OPI_TypeConversion.GetLine(CurrentName);
|
||||
|
||||
CurrentArray.Add(CurrentName);
|
||||
CurrentArray.Add(Base64String(CurrentFile));
|
||||
|
||||
NormalizedFiles.Add(CurrentArray);
|
||||
|
||||
EndDo;
|
||||
|
||||
Return NormalizedFiles;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||
// Lib: Bitrix24
|
||||
// CLI: bitrix24
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:UnreachableCode-off
|
||||
// BSLLS:CommentedCode-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Uncomment if OneScript is executed
|
||||
#Use "../../tools"
|
||||
|
||||
#Region Public
|
||||
|
||||
#Region SettingsAndAdministartion
|
||||
|
||||
// Get app authentication link
|
||||
// Forms a link for authorization via the browser
|
||||
//
|
||||
// Parameters:
|
||||
// Domain - String - Current Bitrix URL (like 'portal.bitrix24.com')
|
||||
// ClientID - String - Client ID from app settings
|
||||
//
|
||||
// Returns:
|
||||
// String - URL for browser transition
|
||||
Function GetAppAuthLink(Val Domain, Val ClientID) Export
|
||||
|
||||
OPI_TypeConversion.GetLine(Domain);
|
||||
OPI_TypeConversion.GetLine(ClientID);
|
||||
|
||||
If Not StrStartsWith(Domain, "http") Then
|
||||
URL = "https://" + Domain;
|
||||
EndIf;
|
||||
|
||||
If Not StrEndsWith(URL, "/") Then
|
||||
URL = URL + "/";
|
||||
EndIf;
|
||||
|
||||
URL = URL + "oauth/authorize/?client_id=" + ClientID;
|
||||
|
||||
Return URL;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Get token
|
||||
// Get token by auth code
|
||||
//
|
||||
// Parameters:
|
||||
// ClientID - String - Client ID from app settings
|
||||
// ClientSecret - String - Client secret from app settings
|
||||
// Code - String - Code from browser auth page
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function GetToken(Val ClientID, Val ClientSecret, Val Code) Export
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Parameters = New Structure;
|
||||
OPI_Tools.AddField("grant_type" , "authorization_code", "String", Parameters);
|
||||
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
|
||||
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
|
||||
OPI_Tools.AddField("code" , Code , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Refresh token
|
||||
// Update token by refresh token
|
||||
//
|
||||
// Parameters:
|
||||
// ClientID - String - Client ID from app settings
|
||||
// ClientSecret - String - Client secret from app settings
|
||||
// Refresh - String - Refresh token
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function RefreshToken(Val ClientID, Val ClientSecret, Val Refresh) Export
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Parameters = New Structure;
|
||||
OPI_Tools.AddField("grant_type" , "refresh_token" , "String", Parameters);
|
||||
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
|
||||
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
|
||||
OPI_Tools.AddField("refresh_token", Refresh , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Server time
|
||||
// Get current server time
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function ServerTime(Val URL, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "server.time");
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region NewsFeed
|
||||
|
||||
// Create post.
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// Text - String - Text of post
|
||||
// Visibility - String - Array or a single post target (UA all, SG<X> work group, U<X> user, DR<X> depart., G<X> group)
|
||||
// Files - String - Data inложенandй, где toлюч > andмя file, value > path to file andдand дinоandчные Data
|
||||
// Title - String - Title
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function CreatePost(Val URL
|
||||
, Val Text
|
||||
, Val Visibility = "UA"
|
||||
, Val Files = ""
|
||||
, Val Title = ""
|
||||
, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "log.blogpost.add");
|
||||
OPI_Tools.AddField("POST_MESSAGE", Text , "String", Parameters);
|
||||
OPI_Tools.AddField("POST_TITLE" , Title, "String", Parameters);
|
||||
OPI_Tools.AddField("DEST" , Visibility , "Array", Parameters);
|
||||
|
||||
If ValueIsFilled(Files) Then
|
||||
|
||||
OPI_TypeConversion.GetCollection(Files);
|
||||
|
||||
ArrayOfFiles = NormalizeFiles(Files);
|
||||
|
||||
If Not ArrayOfFiles.Count() = 0 Then
|
||||
Parameters.Insert("FILES", ArrayOfFiles);
|
||||
EndIf;
|
||||
|
||||
EndIf;
|
||||
|
||||
Response = OPI_Tools.Post(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Delete post.
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// PostID - String, Number - Id of post to remove
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function DeletePost(Val URL, Val PostID, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "log.blogpost.delete");
|
||||
OPI_Tools.AddField("POST_ID", PostID, "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Post(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Internal
|
||||
|
||||
Function NormalizeAuth(URL, Val Token, Val Method = "")
|
||||
|
||||
OPI_TypeConversion.GetLine(URL);
|
||||
OPI_TypeConversion.GetLine(Token);
|
||||
|
||||
Parameters = New Structure;
|
||||
IsTokenAuth = ValueIsFilled(Token);
|
||||
|
||||
UncorrectItems = New Array;
|
||||
UncorrectItems.Add("https://");
|
||||
UncorrectItems.Add("http://");
|
||||
UncorrectItems.Add("www.");
|
||||
|
||||
For Each DeletedElement In UncorrectItems Do
|
||||
URL = StrReplace(URL, DeletedElement, "");
|
||||
EndDo;
|
||||
|
||||
URL = TrimAll(URL);
|
||||
|
||||
If Not StrEndsWith(URL, "/") Then
|
||||
URL = URL + "/";
|
||||
EndIf;
|
||||
|
||||
If IsTokenAuth Then
|
||||
|
||||
If Not StrEndsWith(URL, "rest/") Then
|
||||
URL = URL + "rest/";
|
||||
EndIf;
|
||||
|
||||
Parameters.Insert("auth", Token);
|
||||
|
||||
EndIf;
|
||||
|
||||
If ValueIsFilled(Method) Then
|
||||
URL = URL + TrimAll(Method);
|
||||
EndIf;
|
||||
|
||||
Return Parameters;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function NormalizeFiles(Val Files)
|
||||
|
||||
NormalizedFiles = New Array;
|
||||
|
||||
If Not TypeOf(Files) = Type("Map") Then
|
||||
Return NormalizedFiles;
|
||||
EndIf;
|
||||
|
||||
For Each File In Files Do
|
||||
|
||||
CurrentArray = New Array;
|
||||
CurrentFile = File.Value;
|
||||
CurrentName = File.Key;
|
||||
|
||||
OPI_TypeConversion.GetBinaryData(CurrentFile);
|
||||
OPI_TypeConversion.GetLine(CurrentName);
|
||||
|
||||
CurrentArray.Add(CurrentName);
|
||||
CurrentArray.Add(Base64String(CurrentFile));
|
||||
|
||||
NormalizedFiles.Add(CurrentArray);
|
||||
|
||||
EndDo;
|
||||
|
||||
Return NormalizedFiles;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
@ -1,21 +1,21 @@
|
||||
<package-def>
|
||||
<module name="OPI_Airtable" file="core/Modules/OPI_Airtable.os"/>
|
||||
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
|
||||
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
|
||||
<module name="OPI_GoogleCalendar" file="core/Modules/OPI_GoogleCalendar.os"/>
|
||||
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
|
||||
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
|
||||
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
|
||||
<module name="OPI_Tools" file="tools/Modules/internal/Modules/OPI_Tools.os"/>
|
||||
<module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/>
|
||||
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
|
||||
<module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/>
|
||||
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
|
||||
<module name="OPI_TestDataRetrieval" file="tools/Modules/OPI_TestDataRetrieval.os"/>
|
||||
<module name="OPI_Twitter" file="core/Modules/OPI_Twitter.os"/>
|
||||
<module name="OPI_Viber" file="core/Modules/OPI_Viber.os"/>
|
||||
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
|
||||
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
|
||||
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
|
||||
<module name="OPI_Tools" file="tools/Modules/internal/Modules/OPI_Tools.os"/>
|
||||
<module name="OPI_Cryptography" file="tools/Modules/internal/Modules/OPI_Cryptography.os"/>
|
||||
<module name="OPI_TestDataRetrieval" file="tools/Modules/OPI_TestDataRetrieval.os"/>
|
||||
<module name="OPI_TypeConversion" file="tools/Modules/OPI_TypeConversion.os"/>
|
||||
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
|
||||
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
|
||||
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
|
||||
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
|
||||
<module name="OPI_Airtable" file="core/Modules/OPI_Airtable.os"/>
|
||||
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
|
||||
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
|
||||
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
|
||||
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
|
||||
<module name="OPI_Cryptography" file="tools/Modules/internal/Modules/OPI_Cryptography.os"/>
|
||||
</package-def>
|
||||
|
@ -5460,7 +5460,7 @@ Procedure Bitrix24_ServerTime(FunctionParameters)
|
||||
|
||||
Result = OPI_Bitrix24.ServerTime(URL);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "ServerTime (хуto)", "Bitrix24");
|
||||
OPI_TestDataRetrieval.WriteLog(Result, ")", "Bitrix24");
|
||||
|
||||
Check_BitrixTime(Result); // SKIP
|
||||
|
||||
@ -5490,7 +5490,7 @@ Procedure Bitrix24_CreatePost(FunctionParameters)
|
||||
|
||||
Result = OPI_Bitrix24.CreatePost(URL, Text, , Files, Title);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "CreatePost (хуto)", "Bitrix24");
|
||||
OPI_TestDataRetrieval.WriteLog(Result, ")", "Bitrix24");
|
||||
|
||||
Check_BitrixPost(Result); // SKIP
|
||||
|
||||
@ -5523,7 +5523,7 @@ Procedure Bitrix24_DeletePost(FunctionParameters)
|
||||
|
||||
Result = OPI_Bitrix24.DeletePost(URL, PostID);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeletePost (хуto)", "Bitrix24");
|
||||
OPI_TestDataRetrieval.WriteLog(Result, ")", "Bitrix24");
|
||||
|
||||
Check_BitrixTrue(Result); // SKIP
|
||||
|
||||
|
@ -1,286 +1,286 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||
// Lib: Bitrix24
|
||||
// CLI: bitrix24
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:UnreachableCode-off
|
||||
// BSLLS:CommentedCode-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Uncomment if OneScript is executed
|
||||
// #Use "../../tools"
|
||||
|
||||
#Region Public
|
||||
|
||||
#Region SettingsAndAdministartion
|
||||
|
||||
// Get app authentication link
|
||||
// Forms a link for authorization via the browser
|
||||
//
|
||||
// Parameters:
|
||||
// Domain - String - Current Bitrix URL (like 'portal.bitrix24.com')
|
||||
// ClientID - String - Client ID from app settings
|
||||
//
|
||||
// Returns:
|
||||
// String - URL for browser transition
|
||||
Function GetAppAuthLink(Val Domain, Val ClientID) Export
|
||||
|
||||
OPI_TypeConversion.GetLine(Domain);
|
||||
OPI_TypeConversion.GetLine(ClientID);
|
||||
|
||||
If Not StrStartsWith(Domain, "http") Then
|
||||
URL = "https://" + Domain;
|
||||
EndIf;
|
||||
|
||||
If Not StrEndsWith(URL, "/") Then
|
||||
URL = URL + "/";
|
||||
EndIf;
|
||||
|
||||
URL = URL + "oauth/authorize/?client_id=" + ClientID;
|
||||
|
||||
Return URL;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Get token
|
||||
// Get token by auth code
|
||||
//
|
||||
// Parameters:
|
||||
// ClientID - String - Client ID from app settings
|
||||
// ClientSecret - String - Client secret from app settings
|
||||
// Code - String - Code from browser auth page
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function GetToken(Val ClientID, Val ClientSecret, Val Code) Export
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Parameters = New Structure;
|
||||
OPI_Tools.AddField("grant_type" , "authorization_code", "String", Parameters);
|
||||
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
|
||||
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
|
||||
OPI_Tools.AddField("code" , Code , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Refresh token
|
||||
// Update token by refresh token
|
||||
//
|
||||
// Parameters:
|
||||
// ClientID - String - Client ID from app settings
|
||||
// ClientSecret - String - Client secret from app settings
|
||||
// Refresh - String - Refresh token
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function RefreshToken(Val ClientID, Val ClientSecret, Val Refresh) Export
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Parameters = New Structure;
|
||||
OPI_Tools.AddField("grant_type" , "refresh_token" , "String", Parameters);
|
||||
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
|
||||
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
|
||||
OPI_Tools.AddField("refresh_token", Refresh , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Server time
|
||||
// Get current server time
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function ServerTime(Val URL, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "server.time");
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region NewsFeed
|
||||
|
||||
// Create post.
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// Text - String - Text of post
|
||||
// Visibility - String - Array or a single post target (UA all, SG<X> work group, U<X> user, DR<X> depart., G<X> group)
|
||||
// Files - String - Data inложенandй, где toлюч > andмя file, value > path to file andдand дinоandчные Data
|
||||
// Title - String - Title
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function CreatePost(Val URL
|
||||
, Val Text
|
||||
, Val Visibility = "UA"
|
||||
, Val Files = ""
|
||||
, Val Title = ""
|
||||
, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "log.blogpost.add");
|
||||
OPI_Tools.AddField("POST_MESSAGE", Text , "String", Parameters);
|
||||
OPI_Tools.AddField("POST_TITLE" , Title, "String", Parameters);
|
||||
OPI_Tools.AddField("DEST" , Visibility , "Array", Parameters);
|
||||
|
||||
If ValueIsFilled(Files) Then
|
||||
|
||||
OPI_TypeConversion.GetCollection(Files);
|
||||
|
||||
ArrayOfFiles = NormalizeFiles(Files);
|
||||
|
||||
If Not ArrayOfFiles.Count() = 0 Then
|
||||
Parameters.Insert("FILES", ArrayOfFiles);
|
||||
EndIf;
|
||||
|
||||
EndIf;
|
||||
|
||||
Response = OPI_Tools.Post(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Delete post.
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// PostID - String, Number - Id of post to remove
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function DeletePost(Val URL, Val PostID, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "log.blogpost.delete");
|
||||
OPI_Tools.AddField("POST_ID", PostID, "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Post(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Internal
|
||||
|
||||
Function NormalizeAuth(URL, Val Token, Val Method = "")
|
||||
|
||||
OPI_TypeConversion.GetLine(URL);
|
||||
OPI_TypeConversion.GetLine(Token);
|
||||
|
||||
Parameters = New Structure;
|
||||
IsTokenAuth = ValueIsFilled(Token);
|
||||
|
||||
UncorrectItems = New Array;
|
||||
UncorrectItems.Add("https://");
|
||||
UncorrectItems.Add("http://");
|
||||
UncorrectItems.Add("www.");
|
||||
|
||||
For Each DeletedElement In UncorrectItems Do
|
||||
URL = StrReplace(URL, DeletedElement, "");
|
||||
EndDo;
|
||||
|
||||
URL = TrimAll(URL);
|
||||
|
||||
If Not StrEndsWith(URL, "/") Then
|
||||
URL = URL + "/";
|
||||
EndIf;
|
||||
|
||||
If IsTokenAuth Then
|
||||
|
||||
If Not StrEndsWith(URL, "rest/") Then
|
||||
URL = URL + "rest/";
|
||||
EndIf;
|
||||
|
||||
Parameters.Insert("auth", Token);
|
||||
|
||||
EndIf;
|
||||
|
||||
If ValueIsFilled(Method) Then
|
||||
URL = URL + TrimAll(Method);
|
||||
EndIf;
|
||||
|
||||
Return Parameters;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function NormalizeFiles(Val Files)
|
||||
|
||||
NormalizedFiles = New Array;
|
||||
|
||||
If Not TypeOf(Files) = Type("Map") Then
|
||||
Return NormalizedFiles;
|
||||
EndIf;
|
||||
|
||||
For Each File In Files Do
|
||||
|
||||
CurrentArray = New Array;
|
||||
CurrentFile = File.Value;
|
||||
CurrentName = File.Key;
|
||||
|
||||
OPI_TypeConversion.GetBinaryData(CurrentFile);
|
||||
OPI_TypeConversion.GetLine(CurrentName);
|
||||
|
||||
CurrentArray.Add(CurrentName);
|
||||
CurrentArray.Add(Base64String(CurrentFile));
|
||||
|
||||
NormalizedFiles.Add(CurrentArray);
|
||||
|
||||
EndDo;
|
||||
|
||||
Return NormalizedFiles;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||
// Lib: Bitrix24
|
||||
// CLI: bitrix24
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:UnreachableCode-off
|
||||
// BSLLS:CommentedCode-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Uncomment if OneScript is executed
|
||||
// #Use "../../tools"
|
||||
|
||||
#Region Public
|
||||
|
||||
#Region SettingsAndAdministartion
|
||||
|
||||
// Get app authentication link
|
||||
// Forms a link for authorization via the browser
|
||||
//
|
||||
// Parameters:
|
||||
// Domain - String - Current Bitrix URL (like 'portal.bitrix24.com')
|
||||
// ClientID - String - Client ID from app settings
|
||||
//
|
||||
// Returns:
|
||||
// String - URL for browser transition
|
||||
Function GetAppAuthLink(Val Domain, Val ClientID) Export
|
||||
|
||||
OPI_TypeConversion.GetLine(Domain);
|
||||
OPI_TypeConversion.GetLine(ClientID);
|
||||
|
||||
If Not StrStartsWith(Domain, "http") Then
|
||||
URL = "https://" + Domain;
|
||||
EndIf;
|
||||
|
||||
If Not StrEndsWith(URL, "/") Then
|
||||
URL = URL + "/";
|
||||
EndIf;
|
||||
|
||||
URL = URL + "oauth/authorize/?client_id=" + ClientID;
|
||||
|
||||
Return URL;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Get token
|
||||
// Get token by auth code
|
||||
//
|
||||
// Parameters:
|
||||
// ClientID - String - Client ID from app settings
|
||||
// ClientSecret - String - Client secret from app settings
|
||||
// Code - String - Code from browser auth page
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function GetToken(Val ClientID, Val ClientSecret, Val Code) Export
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Parameters = New Structure;
|
||||
OPI_Tools.AddField("grant_type" , "authorization_code", "String", Parameters);
|
||||
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
|
||||
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
|
||||
OPI_Tools.AddField("code" , Code , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Refresh token
|
||||
// Update token by refresh token
|
||||
//
|
||||
// Parameters:
|
||||
// ClientID - String - Client ID from app settings
|
||||
// ClientSecret - String - Client secret from app settings
|
||||
// Refresh - String - Refresh token
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function RefreshToken(Val ClientID, Val ClientSecret, Val Refresh) Export
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Parameters = New Structure;
|
||||
OPI_Tools.AddField("grant_type" , "refresh_token" , "String", Parameters);
|
||||
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
|
||||
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
|
||||
OPI_Tools.AddField("refresh_token", Refresh , "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Server time
|
||||
// Get current server time
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function ServerTime(Val URL, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "server.time");
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region NewsFeed
|
||||
|
||||
// Create post.
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// Text - String - Text of post
|
||||
// Visibility - String - Array or a single post target (UA all, SG<X> work group, U<X> user, DR<X> depart., G<X> group)
|
||||
// Files - String - Data inложенandй, где toлюч > andмя file, value > path to file andдand дinоandчные Data
|
||||
// Title - String - Title
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function CreatePost(Val URL
|
||||
, Val Text
|
||||
, Val Visibility = "UA"
|
||||
, Val Files = ""
|
||||
, Val Title = ""
|
||||
, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "log.blogpost.add");
|
||||
OPI_Tools.AddField("POST_MESSAGE", Text , "String", Parameters);
|
||||
OPI_Tools.AddField("POST_TITLE" , Title, "String", Parameters);
|
||||
OPI_Tools.AddField("DEST" , Visibility , "Array", Parameters);
|
||||
|
||||
If ValueIsFilled(Files) Then
|
||||
|
||||
OPI_TypeConversion.GetCollection(Files);
|
||||
|
||||
ArrayOfFiles = NormalizeFiles(Files);
|
||||
|
||||
If Not ArrayOfFiles.Count() = 0 Then
|
||||
Parameters.Insert("FILES", ArrayOfFiles);
|
||||
EndIf;
|
||||
|
||||
EndIf;
|
||||
|
||||
Response = OPI_Tools.Post(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Delete post.
|
||||
//
|
||||
// Parameters:
|
||||
// URL - String - URL of webhook or a Bitrix24 domain, when token used
|
||||
// PostID - String, Number - Id of post to remove
|
||||
// Token - String - Access token, when not-webhook method used
|
||||
//
|
||||
// Returns:
|
||||
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
|
||||
Function DeletePost(Val URL, Val PostID, Val Token = "") Export
|
||||
|
||||
Parameters = NormalizeAuth(URL, Token, "log.blogpost.delete");
|
||||
OPI_Tools.AddField("POST_ID", PostID, "String", Parameters);
|
||||
|
||||
Response = OPI_Tools.Post(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Internal
|
||||
|
||||
Function NormalizeAuth(URL, Val Token, Val Method = "")
|
||||
|
||||
OPI_TypeConversion.GetLine(URL);
|
||||
OPI_TypeConversion.GetLine(Token);
|
||||
|
||||
Parameters = New Structure;
|
||||
IsTokenAuth = ValueIsFilled(Token);
|
||||
|
||||
UncorrectItems = New Array;
|
||||
UncorrectItems.Add("https://");
|
||||
UncorrectItems.Add("http://");
|
||||
UncorrectItems.Add("www.");
|
||||
|
||||
For Each DeletedElement In UncorrectItems Do
|
||||
URL = StrReplace(URL, DeletedElement, "");
|
||||
EndDo;
|
||||
|
||||
URL = TrimAll(URL);
|
||||
|
||||
If Not StrEndsWith(URL, "/") Then
|
||||
URL = URL + "/";
|
||||
EndIf;
|
||||
|
||||
If IsTokenAuth Then
|
||||
|
||||
If Not StrEndsWith(URL, "rest/") Then
|
||||
URL = URL + "rest/";
|
||||
EndIf;
|
||||
|
||||
Parameters.Insert("auth", Token);
|
||||
|
||||
EndIf;
|
||||
|
||||
If ValueIsFilled(Method) Then
|
||||
URL = URL + TrimAll(Method);
|
||||
EndIf;
|
||||
|
||||
Return Parameters;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function NormalizeFiles(Val Files)
|
||||
|
||||
NormalizedFiles = New Array;
|
||||
|
||||
If Not TypeOf(Files) = Type("Map") Then
|
||||
Return NormalizedFiles;
|
||||
EndIf;
|
||||
|
||||
For Each File In Files Do
|
||||
|
||||
CurrentArray = New Array;
|
||||
CurrentFile = File.Value;
|
||||
CurrentName = File.Key;
|
||||
|
||||
OPI_TypeConversion.GetBinaryData(CurrentFile);
|
||||
OPI_TypeConversion.GetLine(CurrentName);
|
||||
|
||||
CurrentArray.Add(CurrentName);
|
||||
CurrentArray.Add(Base64String(CurrentFile));
|
||||
|
||||
NormalizedFiles.Add(CurrentArray);
|
||||
|
||||
EndDo;
|
||||
|
||||
Return NormalizedFiles;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="496e68cd-c70d-4c15-aa9e-c2aad28abf8a">
|
||||
<name>OPI_Bitrix24</name>
|
||||
<synonym>
|
||||
<key>en</key>
|
||||
<value>Bitrix24 (OPI)</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="496e68cd-c70d-4c15-aa9e-c2aad28abf8a">
|
||||
<name>OPI_Bitrix24</name>
|
||||
<synonym>
|
||||
<key>en</key>
|
||||
<value>Bitrix24 (OPI)</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
||||
|
@ -1,14 +1,14 @@
|
||||
Function ПолучитьСостав() Export
|
||||
|
||||
CompositionTable = New ValueTable();
|
||||
CompositionTable.Columns.Add("Библиотека");
|
||||
CompositionTable.Columns.Add("Модуль");
|
||||
CompositionTable.Columns.Add("Метод");
|
||||
CompositionTable.Columns.Add("МетодПоиска");
|
||||
CompositionTable.Columns.Add("Параметр");
|
||||
CompositionTable.Columns.Add("Описание");
|
||||
CompositionTable.Columns.Add("ОписаниеМетода");
|
||||
CompositionTable.Columns.Add("Область");
|
||||
Return CompositionTable;
|
||||
EndFunction
|
||||
|
||||
Function ПолучитьСостав() Export
|
||||
|
||||
CompositionTable = New ValueTable();
|
||||
CompositionTable.Columns.Add("Библиотека");
|
||||
CompositionTable.Columns.Add("Модуль");
|
||||
CompositionTable.Columns.Add("Метод");
|
||||
CompositionTable.Columns.Add("МетодПоиска");
|
||||
CompositionTable.Columns.Add("Параметр");
|
||||
CompositionTable.Columns.Add("Описание");
|
||||
CompositionTable.Columns.Add("ОписаниеМетода");
|
||||
CompositionTable.Columns.Add("Область");
|
||||
Return CompositionTable;
|
||||
EndFunction
|
||||
|
||||
|
@ -142,7 +142,7 @@
|
||||
NewLine.Метод = "GetObjectInformation";
|
||||
NewLine.МетодПоиска = "GETOBJECTINFORMATION";
|
||||
NewLine.Параметр = "--detail";
|
||||
NewLine.Описание = "Adds additional information fields for media files (optional, def. val. - No)";
|
||||
NewLine.Описание = "Adds additional information fields for media files (optional, def. val. - False)";
|
||||
NewLine.Область = "File and directory management";
|
||||
|
||||
|
||||
@ -173,7 +173,7 @@
|
||||
NewLine.Метод = "GetListOfFolderFiles";
|
||||
NewLine.МетодПоиска = "GETLISTOFFOLDERFILES";
|
||||
NewLine.Параметр = "--detail";
|
||||
NewLine.Описание = "Adds additional information fields for media files (optional, def. val. - No)";
|
||||
NewLine.Описание = "Adds additional information fields for media files (optional, def. val. - False)";
|
||||
NewLine.Область = "File and directory management";
|
||||
|
||||
|
||||
@ -245,7 +245,7 @@
|
||||
NewLine.Метод = "UploadFile";
|
||||
NewLine.МетодПоиска = "UPLOADFILE";
|
||||
NewLine.Параметр = "--overwrite";
|
||||
NewLine.Описание = "Overwrite file in case of path conflicts (optional, def. val. - No)";
|
||||
NewLine.Описание = "Overwrite file in case of path conflicts (optional, def. val. - False)";
|
||||
NewLine.Область = "File and directory management";
|
||||
|
||||
|
||||
@ -328,7 +328,7 @@
|
||||
NewLine.Метод = "DeleteObject";
|
||||
NewLine.МетодПоиска = "DELETEOBJECT";
|
||||
NewLine.Параметр = "--permanently";
|
||||
NewLine.Описание = "Delete object without the possibility of recovery (optional, def. val. - No)";
|
||||
NewLine.Описание = "Delete object without the possibility of recovery (optional, def. val. - False)";
|
||||
NewLine.Область = "File and directory management";
|
||||
|
||||
|
||||
@ -681,7 +681,7 @@
|
||||
NewLine.Метод = "AddUsersToFile";
|
||||
NewLine.МетодПоиска = "ADDUSERSTOFILE";
|
||||
NewLine.Параметр = "--readonly";
|
||||
NewLine.Описание = "Prohibits file editing for the external user (optional, def. val. - Да)";
|
||||
NewLine.Описание = "Prohibits file editing for the external user (optional, def. val. - True)";
|
||||
NewLine.Область = "Shared access settings";
|
||||
|
||||
|
||||
@ -722,7 +722,7 @@
|
||||
NewLine.Метод = "AddUsersToFolder";
|
||||
NewLine.МетодПоиска = "ADDUSERSTOFOLDER";
|
||||
NewLine.Параметр = "--readonly";
|
||||
NewLine.Описание = "Prohibits file editing for the external user (optional, def. val. - Да)";
|
||||
NewLine.Описание = "Prohibits file editing for the external user (optional, def. val. - True)";
|
||||
NewLine.Область = "Shared access settings";
|
||||
|
||||
|
||||
|
@ -246,7 +246,7 @@
|
||||
NewLine.Метод = "EditListCalendar";
|
||||
NewLine.МетодПоиска = "EDITLISTCALENDAR";
|
||||
NewLine.Параметр = "--hidden";
|
||||
NewLine.Описание = "Hidden calendar (optional, def. val. - No)";
|
||||
NewLine.Описание = "Hidden calendar (optional, def. val. - False)";
|
||||
NewLine.Область = "Calendar list management";
|
||||
|
||||
|
||||
|
@ -58,7 +58,7 @@
|
||||
NewLine.Метод = "GetDirectoriesList";
|
||||
NewLine.МетодПоиска = "GETDIRECTORIESLIST";
|
||||
NewLine.Параметр = "--depth";
|
||||
NewLine.Описание = "Adds a list of files to the directory fields (optional, def. val. - No)";
|
||||
NewLine.Описание = "Adds a list of files to the directory fields (optional, def. val. - False)";
|
||||
NewLine.Область = "File and directory management";
|
||||
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
NewLine.Метод = "FormCodeRetrievalLink";
|
||||
NewLine.МетодПоиска = "FORMCODERETRIEVALLINK";
|
||||
NewLine.Параметр = "--calendar";
|
||||
NewLine.Описание = "Calendar methods permission (optional, def. val. - Да)";
|
||||
NewLine.Описание = "Calendar methods permission (optional, def. val. - True)";
|
||||
NewLine.Область = "Public";
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
NewLine.Метод = "FormCodeRetrievalLink";
|
||||
NewLine.МетодПоиска = "FORMCODERETRIEVALLINK";
|
||||
NewLine.Параметр = "--drive";
|
||||
NewLine.Описание = "Drive methods permission (optional, def. val. - Да)";
|
||||
NewLine.Описание = "Drive methods permission (optional, def. val. - True)";
|
||||
NewLine.Область = "Public";
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
NewLine.Метод = "FormCodeRetrievalLink";
|
||||
NewLine.МетодПоиска = "FORMCODERETRIEVALLINK";
|
||||
NewLine.Параметр = "--sheets";
|
||||
NewLine.Описание = "Sheets methods permission (optional, def. val. - Да)";
|
||||
NewLine.Описание = "Sheets methods permission (optional, def. val. - True)";
|
||||
NewLine.Область = "Public";
|
||||
|
||||
|
||||
|
@ -165,7 +165,7 @@
|
||||
NewLine.Метод = "EditPageProperties";
|
||||
NewLine.МетодПоиска = "EDITPAGEPROPERTIES";
|
||||
NewLine.Параметр = "--archive";
|
||||
NewLine.Описание = "Archive page or not (boolean) (optional, def. val. - No)";
|
||||
NewLine.Описание = "Archive page or not (boolean) (optional, def. val. - False)";
|
||||
NewLine.Область = "Page management";
|
||||
|
||||
|
||||
@ -381,7 +381,7 @@
|
||||
NewLine.Метод = "ReturnBlock";
|
||||
NewLine.МетодПоиска = "RETURNBLOCK";
|
||||
NewLine.Параметр = "--core";
|
||||
NewLine.Описание = "True > service fields are deleted, only the block itself remains (optional, def. val. - Да)";
|
||||
NewLine.Описание = "True > service fields are deleted, only the block itself remains (optional, def. val. - True)";
|
||||
NewLine.Область = "Blocks managment";
|
||||
|
||||
|
||||
|
@ -254,7 +254,7 @@
|
||||
NewLine.Метод = "DeleteMessage";
|
||||
NewLine.МетодПоиска = "DELETEMESSAGE";
|
||||
NewLine.Параметр = "--issheduled";
|
||||
NewLine.Описание = "Indicator of deleting a delayed message (optional, def. val. - No)";
|
||||
NewLine.Описание = "Indicator of deleting a delayed message (optional, def. val. - False)";
|
||||
NewLine.Область = "Message management";
|
||||
|
||||
|
||||
@ -378,7 +378,7 @@
|
||||
NewLine.Метод = "GetChannelList";
|
||||
NewLine.МетодПоиска = "GETCHANNELLIST";
|
||||
NewLine.Параметр = "--notarchived";
|
||||
NewLine.Описание = "Indicator of excluding archived channels (optional, def. val. - No)";
|
||||
NewLine.Описание = "Indicator of excluding archived channels (optional, def. val. - False)";
|
||||
NewLine.Область = "Channel management";
|
||||
|
||||
|
||||
@ -450,7 +450,7 @@
|
||||
NewLine.Метод = "CreateChannel";
|
||||
NewLine.МетодПоиска = "CREATECHANNEL";
|
||||
NewLine.Параметр = "--private";
|
||||
NewLine.Описание = "Create channel as private (optional, def. val. - No)";
|
||||
NewLine.Описание = "Create channel as private (optional, def. val. - False)";
|
||||
NewLine.Область = "Channel management";
|
||||
|
||||
|
||||
|
@ -699,7 +699,7 @@
|
||||
NewLine.Метод = "SendPoll";
|
||||
NewLine.МетодПоиска = "SENDPOLL";
|
||||
NewLine.Параметр = "--anonymous";
|
||||
NewLine.Описание = "Poll anonymity (optional, def. val. - Да)";
|
||||
NewLine.Описание = "Poll anonymity (optional, def. val. - True)";
|
||||
NewLine.Область = "Data sending";
|
||||
|
||||
|
||||
@ -761,7 +761,7 @@
|
||||
NewLine.Метод = "FormKeyboardFromButtonArray";
|
||||
NewLine.МетодПоиска = "FORMKEYBOARDFROMBUTTONARRAY";
|
||||
NewLine.Параметр = "--under";
|
||||
NewLine.Описание = "Keyboard under the message or on the bottom panel (optional, def. val. - No)";
|
||||
NewLine.Описание = "Keyboard under the message or on the bottom panel (optional, def. val. - False)";
|
||||
NewLine.Область = "Data sending";
|
||||
|
||||
|
||||
@ -771,7 +771,7 @@
|
||||
NewLine.Метод = "FormKeyboardFromButtonArray";
|
||||
NewLine.МетодПоиска = "FORMKEYBOARDFROMBUTTONARRAY";
|
||||
NewLine.Параметр = "--column";
|
||||
NewLine.Описание = "True > buttons are displayed in a column, False > in a row (optional, def. val. - Да)";
|
||||
NewLine.Описание = "True > buttons are displayed in a column, False > in a row (optional, def. val. - True)";
|
||||
NewLine.Область = "Data sending";
|
||||
|
||||
|
||||
|
@ -58,7 +58,7 @@
|
||||
NewLine.Метод = "CreatePost";
|
||||
NewLine.МетодПоиска = "CREATEPOST";
|
||||
NewLine.Параметр = "--ad";
|
||||
NewLine.Описание = "Sign ""This is an ad"" (optional, def. val. - No)";
|
||||
NewLine.Описание = "Sign ""This is an ad"" (optional, def. val. - False)";
|
||||
NewLine.Область = "Community managment";
|
||||
|
||||
|
||||
@ -118,7 +118,7 @@
|
||||
NewLine.Метод = "CreateCompositePost";
|
||||
NewLine.МетодПоиска = "CREATECOMPOSITEPOST";
|
||||
NewLine.Параметр = "--ad";
|
||||
NewLine.Описание = "Sign ""This is an ad"" (optional, def. val. - No)";
|
||||
NewLine.Описание = "Sign ""This is an ad"" (optional, def. val. - False)";
|
||||
NewLine.Область = "Community managment";
|
||||
|
||||
|
||||
@ -578,7 +578,7 @@
|
||||
NewLine.Метод = "CloseDiscussion";
|
||||
NewLine.МетодПоиска = "CLOSEDISCUSSION";
|
||||
NewLine.Параметр = "--remove";
|
||||
NewLine.Описание = "Delete completely (True) or close (optional, def. val. - No)";
|
||||
NewLine.Описание = "Delete completely (True) or close (optional, def. val. - False)";
|
||||
NewLine.Область = "Discussion management";
|
||||
|
||||
|
||||
@ -748,7 +748,7 @@
|
||||
NewLine.Метод = "MakeRepost";
|
||||
NewLine.МетодПоиска = "MAKEREPOST";
|
||||
NewLine.Параметр = "--ad";
|
||||
NewLine.Описание = "Sign of an advertising post (optional, def. val. - No)";
|
||||
NewLine.Описание = "Sign of an advertising post (optional, def. val. - False)";
|
||||
NewLine.Область = "Interactive actions";
|
||||
|
||||
|
||||
@ -1510,7 +1510,7 @@
|
||||
NewLine.Метод = "CreateProductCollection";
|
||||
NewLine.МетодПоиска = "CREATEPRODUCTCOLLECTION";
|
||||
NewLine.Параметр = "--main";
|
||||
NewLine.Описание = "Main (optional, def. val. - No)";
|
||||
NewLine.Описание = "Main (optional, def. val. - False)";
|
||||
NewLine.Область = "Product selection management";
|
||||
|
||||
|
||||
@ -1520,7 +1520,7 @@
|
||||
NewLine.Метод = "CreateProductCollection";
|
||||
NewLine.МетодПоиска = "CREATEPRODUCTCOLLECTION";
|
||||
NewLine.Параметр = "--hidden";
|
||||
NewLine.Описание = "Hidden (optional, def. val. - No)";
|
||||
NewLine.Описание = "Hidden (optional, def. val. - False)";
|
||||
NewLine.Область = "Product selection management";
|
||||
|
||||
|
||||
@ -1580,7 +1580,7 @@
|
||||
NewLine.Метод = "EditProductCollection";
|
||||
NewLine.МетодПоиска = "EDITPRODUCTCOLLECTION";
|
||||
NewLine.Параметр = "--main";
|
||||
NewLine.Описание = "Main (optional, def. val. - No)";
|
||||
NewLine.Описание = "Main (optional, def. val. - False)";
|
||||
NewLine.Область = "Product selection management";
|
||||
|
||||
|
||||
@ -1590,7 +1590,7 @@
|
||||
NewLine.Метод = "EditProductCollection";
|
||||
NewLine.МетодПоиска = "EDITPRODUCTCOLLECTION";
|
||||
NewLine.Параметр = "--hidden";
|
||||
NewLine.Описание = "Hidden (optional, def. val. - No)";
|
||||
NewLine.Описание = "Hidden (optional, def. val. - False)";
|
||||
NewLine.Область = "Product selection management";
|
||||
|
||||
|
||||
|
@ -90,7 +90,7 @@
|
||||
NewLine.Метод = "DeleteObject";
|
||||
NewLine.МетодПоиска = "DELETEOBJECT";
|
||||
NewLine.Параметр = "--can";
|
||||
NewLine.Описание = "To cart (optional, def. val. - Да)";
|
||||
NewLine.Описание = "To cart (optional, def. val. - True)";
|
||||
NewLine.Область = "File and folder management";
|
||||
|
||||
|
||||
@ -131,7 +131,7 @@
|
||||
NewLine.Метод = "CreateObjectCopy";
|
||||
NewLine.МетодПоиска = "CREATEOBJECTCOPY";
|
||||
NewLine.Параметр = "--rewrite";
|
||||
NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - No)";
|
||||
NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - False)";
|
||||
NewLine.Область = "File and folder management";
|
||||
|
||||
|
||||
@ -237,7 +237,7 @@
|
||||
NewLine.Метод = "GetFilesList";
|
||||
NewLine.МетодПоиска = "GETFILESLIST";
|
||||
NewLine.Параметр = "--datesort";
|
||||
NewLine.Описание = "True > sort by date, False > alphabetically (optional, def. val. - No)";
|
||||
NewLine.Описание = "True > sort by date, False > alphabetically (optional, def. val. - False)";
|
||||
NewLine.Область = "File and folder management";
|
||||
|
||||
|
||||
@ -278,7 +278,7 @@
|
||||
NewLine.Метод = "MoveObject";
|
||||
NewLine.МетодПоиска = "MOVEOBJECT";
|
||||
NewLine.Параметр = "--rewrite";
|
||||
NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - No)";
|
||||
NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - False)";
|
||||
NewLine.Область = "File and folder management";
|
||||
|
||||
|
||||
@ -319,7 +319,7 @@
|
||||
NewLine.Метод = "UploadFile";
|
||||
NewLine.МетодПоиска = "UPLOADFILE";
|
||||
NewLine.Параметр = "--rewrite";
|
||||
NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - No)";
|
||||
NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - False)";
|
||||
NewLine.Область = "File and folder management";
|
||||
|
||||
|
||||
|
@ -6,21 +6,21 @@
|
||||
|
||||
Функция ПолучитьСоответствиеКомандМодулей() Экспорт
|
||||
СоответствиеКомандМодулей = Новый Соответствие();
|
||||
СоответствиеКомандМодулей.Вставить("airtable", "OPI_Airtable");
|
||||
СоответствиеКомандМодулей.Вставить("bitrix24", "OPI_Bitrix24");
|
||||
СоответствиеКомандМодулей.Вставить("dropbox", "OPI_Dropbox");
|
||||
СоответствиеКомандМодулей.Вставить("yandex", "OPI_YandexID");
|
||||
СоответствиеКомандМодулей.Вставить("slack", "OPI_Slack");
|
||||
СоответствиеКомандМодулей.Вставить("viber", "OPI_Viber");
|
||||
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
|
||||
СоответствиеКомандМодулей.Вставить("gcalendar", "OPI_GoogleCalendar");
|
||||
СоответствиеКомандМодулей.Вставить("yadisk", "OPI_YandexDisk");
|
||||
СоответствиеКомандМодулей.Вставить("vk", "OPI_VK");
|
||||
СоответствиеКомандМодулей.Вставить("gdrive", "OPI_GoogleDrive");
|
||||
СоответствиеКомандМодулей.Вставить("notion", "OPI_Notion");
|
||||
СоответствиеКомандМодулей.Вставить("airtable", "OPI_Airtable");
|
||||
СоответствиеКомандМодулей.Вставить("dropbox", "OPI_Dropbox");
|
||||
СоответствиеКомандМодулей.Вставить("twitter", "OPI_Twitter");
|
||||
СоответствиеКомандМодулей.Вставить("bitrix24", "OPI_Bitrix24");
|
||||
СоответствиеКомандМодулей.Вставить("gsheets", "OPI_GoogleSheets");
|
||||
СоответствиеКомандМодулей.Вставить("google", "OPI_GoogleWorkspace");
|
||||
СоответствиеКомандМодулей.Вставить("notion", "OPI_Notion");
|
||||
СоответствиеКомандМодулей.Вставить("slack", "OPI_Slack");
|
||||
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
|
||||
СоответствиеКомандМодулей.Вставить("twitter", "OPI_Twitter");
|
||||
СоответствиеКомандМодулей.Вставить("viber", "OPI_Viber");
|
||||
СоответствиеКомандМодулей.Вставить("vk", "OPI_VK");
|
||||
СоответствиеКомандМодулей.Вставить("yadisk", "OPI_YandexDisk");
|
||||
СоответствиеКомандМодулей.Вставить("yandex", "OPI_YandexID");
|
||||
Возврат СоответствиеКомандМодулей;
|
||||
КонецФункции
|
||||
|
||||
|
@ -1,286 +1,286 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||
// Lib: Bitrix24
|
||||
// CLI: bitrix24
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:UnreachableCode-off
|
||||
// BSLLS:CommentedCode-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область НастройкиИАдминистрирование
|
||||
|
||||
// Получить ссылку авторизации приложения
|
||||
// Формирует ссылку для авторизации через браузер
|
||||
//
|
||||
// Параметры:
|
||||
// Домен - Строка - Адрес битрикс вида portal.bitrix24.com
|
||||
// ClientID - Строка - Client ID из настроек приложения
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - URL для перехода в браузере
|
||||
Функция ПолучитьСсылкуАвторизацииПриложения(Знач Домен, Знач ClientID) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Домен);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
|
||||
|
||||
Если Не СтрНачинаетсяС(Домен, "http") Тогда
|
||||
URL = "https://" + Домен;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда
|
||||
URL = URL + "/";
|
||||
КонецЕсли;
|
||||
|
||||
URL = URL + "oauth/authorize/?client_id=" + ClientID;
|
||||
|
||||
Возврат URL;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить токен
|
||||
// Получает токен по коду авторизации
|
||||
//
|
||||
// Параметры:
|
||||
// ClientID - Строка - Client ID из настроек приложения
|
||||
// ClientSecret - Строка - Client secret из настроек приложения
|
||||
// Code - Строка - Code из авторизации через браузер
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
|
||||
Функция ПолучитьТокен(Знач ClientID, Знач ClientSecret, Знач Code) Экспорт
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("grant_type" , "authorization_code", "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("client_id" , ClientID , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("client_secret", ClientSecret , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("code" , Code , "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Обновить токен
|
||||
// Обновляет токен по Refresh токену
|
||||
//
|
||||
// Параметры:
|
||||
// ClientID - Строка - Client ID из настроек приложения
|
||||
// ClientSecret - Строка - Client secret из настроек приложения
|
||||
// Refresh - Строка - Refresh токен
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
|
||||
Функция ОбновитьТокен(Знач ClientID, Знач ClientSecret, Знач Refresh) Экспорт
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("grant_type" , "refresh_token" , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("client_id" , ClientID , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("client_secret", ClientSecret , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("refresh_token", Refresh , "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
Конецфункции
|
||||
|
||||
// Серверное время
|
||||
// Получает текущее серверное время
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена
|
||||
// Токен - Строка - Токен авторизации, если используется не веб-хук
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
|
||||
Функция СерверноеВремя(Знач URL, Знач Токен = "") Экспорт
|
||||
|
||||
Параметры = НормализоватьАвторизацию(URL, Токен, "server.time");
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ЖиваяЛента
|
||||
|
||||
// Создать новость.
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена
|
||||
// Текст - Строка - Текст новости
|
||||
// Видмость - Строка - Массив/Один получатель (UA все, SG<X> раб. группа, U<X> пользователь, DR<X> отдел, G<X> группа)
|
||||
// Файлы - Строка - Данные вложений, где ключ > имя файла, значение > путь к файлу иди двоичные данные
|
||||
// Заголовок - Строка - Заголовок
|
||||
// Токен - Строка - Токен авторизации, если используется не веб-хук
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
|
||||
Функция СоздатьНовость(Знач URL
|
||||
, Знач Текст
|
||||
, Знач Видмость = "UA"
|
||||
, Знач Файлы = ""
|
||||
, Знач Заголовок = ""
|
||||
, Знач Токен = "") Экспорт
|
||||
|
||||
Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.add");
|
||||
OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("POST_TITLE" , Заголовок, "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("DEST" , Видмость , "Массив", Параметры);
|
||||
|
||||
Если ЗначениеЗаполнено(Файлы) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Файлы);
|
||||
|
||||
МассивФайлов = НормализоватьФайлы(Файлы);
|
||||
|
||||
Если Не МассивФайлов.Количество() = 0 Тогда
|
||||
Параметры.Вставить("FILES", МассивФайлов);
|
||||
КонецЕсли;
|
||||
|
||||
Конецесли;
|
||||
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить новость.
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена
|
||||
// IDНовости - Строка, Число - ID новости для удаления
|
||||
// Токен - Строка - Токен авторизации, если используется не веб-хук
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
|
||||
Функция УдалитьНовость(Знач URL, Знач IDНовости, Знач Токен = "") Экспорт
|
||||
|
||||
Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.delete");
|
||||
OPI_Инструменты.ДобавитьПоле("POST_ID", IDНовости, "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция НормализоватьАвторизацию(URL, Знач Токен, Знач Метод = "")
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
ЭтоАвторизацияТокеном = ЗначениеЗаполнено(Токен);
|
||||
|
||||
МассивЛишнихЭлементов = Новый Массив;
|
||||
МассивЛишнихЭлементов.Добавить("https://");
|
||||
МассивЛишнихЭлементов.Добавить("http://");
|
||||
МассивЛишнихЭлементов.Добавить("www.");
|
||||
|
||||
Для Каждого УдаляемыйЭлемент Из МассивЛишнихЭлементов Цикл
|
||||
URL = СтрЗаменить(URL, УдаляемыйЭлемент, "");
|
||||
КонецЦикла;
|
||||
|
||||
URL = СокрЛП(URL);
|
||||
|
||||
Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда
|
||||
URL = URL + "/";
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоАвторизацияТокеном Тогда
|
||||
|
||||
Если Не СтрЗаканчиваетсяНа(URL, "rest/") Тогда
|
||||
URL = URL + "rest/";
|
||||
КонецЕсли;
|
||||
|
||||
Параметры.Вставить("auth", Токен);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Метод) Тогда
|
||||
URL = URL + СокрЛП(Метод);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Параметры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НормализоватьФайлы(Знач Файлы)
|
||||
|
||||
НормализованныеФайлы = Новый Массив;
|
||||
|
||||
Если Не ТипЗнч(Файлы) = Тип("Соответствие") Тогда
|
||||
Возврат НормализованныеФайлы;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Файл Из Файлы Цикл
|
||||
|
||||
ТекущийМассив = Новый Массив;
|
||||
ТекущийФайл = Файл.Значение;
|
||||
ТекущееИмя = Файл.Ключ;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ТекущийФайл);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееИмя);
|
||||
|
||||
ТекущийМассив.Добавить(ТекущееИмя);
|
||||
ТекущийМассив.Добавить(Base64Строка(ТекущийФайл));
|
||||
|
||||
НормализованныеФайлы.Добавить(ТекущийМассив);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат НормализованныеФайлы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||
// Lib: Bitrix24
|
||||
// CLI: bitrix24
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:UnreachableCode-off
|
||||
// BSLLS:CommentedCode-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "../../tools"
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область НастройкиИАдминистрирование
|
||||
|
||||
// Получить ссылку авторизации приложения
|
||||
// Формирует ссылку для авторизации через браузер
|
||||
//
|
||||
// Параметры:
|
||||
// Домен - Строка - Адрес битрикс вида portal.bitrix24.com
|
||||
// ClientID - Строка - Client ID из настроек приложения
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - URL для перехода в браузере
|
||||
Функция ПолучитьСсылкуАвторизацииПриложения(Знач Домен, Знач ClientID) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Домен);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
|
||||
|
||||
Если Не СтрНачинаетсяС(Домен, "http") Тогда
|
||||
URL = "https://" + Домен;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда
|
||||
URL = URL + "/";
|
||||
КонецЕсли;
|
||||
|
||||
URL = URL + "oauth/authorize/?client_id=" + ClientID;
|
||||
|
||||
Возврат URL;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Получить токен
|
||||
// Получает токен по коду авторизации
|
||||
//
|
||||
// Параметры:
|
||||
// ClientID - Строка - Client ID из настроек приложения
|
||||
// ClientSecret - Строка - Client secret из настроек приложения
|
||||
// Code - Строка - Code из авторизации через браузер
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
|
||||
Функция ПолучитьТокен(Знач ClientID, Знач ClientSecret, Знач Code) Экспорт
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("grant_type" , "authorization_code", "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("client_id" , ClientID , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("client_secret", ClientSecret , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("code" , Code , "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Обновить токен
|
||||
// Обновляет токен по Refresh токену
|
||||
//
|
||||
// Параметры:
|
||||
// ClientID - Строка - Client ID из настроек приложения
|
||||
// ClientSecret - Строка - Client secret из настроек приложения
|
||||
// Refresh - Строка - Refresh токен
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
|
||||
Функция ОбновитьТокен(Знач ClientID, Знач ClientSecret, Знач Refresh) Экспорт
|
||||
|
||||
URL = "https://oauth.bitrix.info/oauth/token/";
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("grant_type" , "refresh_token" , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("client_id" , ClientID , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("client_secret", ClientSecret , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("refresh_token", Refresh , "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
Конецфункции
|
||||
|
||||
// Серверное время
|
||||
// Получает текущее серверное время
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена
|
||||
// Токен - Строка - Токен авторизации, если используется не веб-хук
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
|
||||
Функция СерверноеВремя(Знач URL, Знач Токен = "") Экспорт
|
||||
|
||||
Параметры = НормализоватьАвторизацию(URL, Токен, "server.time");
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ЖиваяЛента
|
||||
|
||||
// Создать новость.
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена
|
||||
// Текст - Строка - Текст новости
|
||||
// Видмость - Строка - Массив/Один получатель (UA все, SG<X> раб. группа, U<X> пользователь, DR<X> отдел, G<X> группа)
|
||||
// Файлы - Строка - Данные вложений, где ключ > имя файла, значение > путь к файлу иди двоичные данные
|
||||
// Заголовок - Строка - Заголовок
|
||||
// Токен - Строка - Токен авторизации, если используется не веб-хук
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
|
||||
Функция СоздатьНовость(Знач URL
|
||||
, Знач Текст
|
||||
, Знач Видмость = "UA"
|
||||
, Знач Файлы = ""
|
||||
, Знач Заголовок = ""
|
||||
, Знач Токен = "") Экспорт
|
||||
|
||||
Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.add");
|
||||
OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("POST_TITLE" , Заголовок, "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("DEST" , Видмость , "Массив", Параметры);
|
||||
|
||||
Если ЗначениеЗаполнено(Файлы) Тогда
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Файлы);
|
||||
|
||||
МассивФайлов = НормализоватьФайлы(Файлы);
|
||||
|
||||
Если Не МассивФайлов.Количество() = 0 Тогда
|
||||
Параметры.Вставить("FILES", МассивФайлов);
|
||||
КонецЕсли;
|
||||
|
||||
Конецесли;
|
||||
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить новость.
|
||||
//
|
||||
// Параметры:
|
||||
// URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена
|
||||
// IDНовости - Строка, Число - ID новости для удаления
|
||||
// Токен - Строка - Токен авторизации, если используется не веб-хук
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
|
||||
Функция УдалитьНовость(Знач URL, Знач IDНовости, Знач Токен = "") Экспорт
|
||||
|
||||
Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.delete");
|
||||
OPI_Инструменты.ДобавитьПоле("POST_ID", IDНовости, "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция НормализоватьАвторизацию(URL, Знач Токен, Знач Метод = "")
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
ЭтоАвторизацияТокеном = ЗначениеЗаполнено(Токен);
|
||||
|
||||
МассивЛишнихЭлементов = Новый Массив;
|
||||
МассивЛишнихЭлементов.Добавить("https://");
|
||||
МассивЛишнихЭлементов.Добавить("http://");
|
||||
МассивЛишнихЭлементов.Добавить("www.");
|
||||
|
||||
Для Каждого УдаляемыйЭлемент Из МассивЛишнихЭлементов Цикл
|
||||
URL = СтрЗаменить(URL, УдаляемыйЭлемент, "");
|
||||
КонецЦикла;
|
||||
|
||||
URL = СокрЛП(URL);
|
||||
|
||||
Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда
|
||||
URL = URL + "/";
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоАвторизацияТокеном Тогда
|
||||
|
||||
Если Не СтрЗаканчиваетсяНа(URL, "rest/") Тогда
|
||||
URL = URL + "rest/";
|
||||
КонецЕсли;
|
||||
|
||||
Параметры.Вставить("auth", Токен);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Метод) Тогда
|
||||
URL = URL + СокрЛП(Метод);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Параметры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НормализоватьФайлы(Знач Файлы)
|
||||
|
||||
НормализованныеФайлы = Новый Массив;
|
||||
|
||||
Если Не ТипЗнч(Файлы) = Тип("Соответствие") Тогда
|
||||
Возврат НормализованныеФайлы;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Файл Из Файлы Цикл
|
||||
|
||||
ТекущийМассив = Новый Массив;
|
||||
ТекущийФайл = Файл.Значение;
|
||||
ТекущееИмя = Файл.Ключ;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ТекущийФайл);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееИмя);
|
||||
|
||||
ТекущийМассив.Добавить(ТекущееИмя);
|
||||
ТекущийМассив.Добавить(Base64Строка(ТекущийФайл));
|
||||
|
||||
НормализованныеФайлы.Добавить(ТекущийМассив);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат НормализованныеФайлы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -1,21 +1,21 @@
|
||||
<package-def>
|
||||
<module name="OPI_Airtable" file="core/Modules/OPI_Airtable.os"/>
|
||||
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
|
||||
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
|
||||
<module name="OPI_GoogleCalendar" file="core/Modules/OPI_GoogleCalendar.os"/>
|
||||
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
|
||||
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
|
||||
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
|
||||
<module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
|
||||
<module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/>
|
||||
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
|
||||
<module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/>
|
||||
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
|
||||
<module name="OPI_ПолучениеДанныхТестов" file="tools/Modules/OPI_ПолучениеДанныхТестов.os"/>
|
||||
<module name="OPI_Twitter" file="core/Modules/OPI_Twitter.os"/>
|
||||
<module name="OPI_Viber" file="core/Modules/OPI_Viber.os"/>
|
||||
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
|
||||
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
|
||||
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
|
||||
<module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
|
||||
<module name="OPI_Криптография" file="tools/Modules/internal/Modules/OPI_Криптография.os"/>
|
||||
<module name="OPI_ПолучениеДанныхТестов" file="tools/Modules/OPI_ПолучениеДанныхТестов.os"/>
|
||||
<module name="OPI_ПреобразованиеТипов" file="tools/Modules/OPI_ПреобразованиеТипов.os"/>
|
||||
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
|
||||
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
|
||||
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
|
||||
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
|
||||
<module name="OPI_Airtable" file="core/Modules/OPI_Airtable.os"/>
|
||||
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
|
||||
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
|
||||
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
|
||||
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
|
||||
<module name="OPI_Криптография" file="tools/Modules/internal/Modules/OPI_Криптография.os"/>
|
||||
</package-def>
|
||||
|
@ -1,55 +1,55 @@
|
||||
Функция ПолучитьСостав() Экспорт
|
||||
|
||||
ТаблицаСостава = Новый ТаблицаЗначений();
|
||||
ТаблицаСостава.Колонки.Добавить("Библиотека");
|
||||
ТаблицаСостава.Колонки.Добавить("Модуль");
|
||||
ТаблицаСостава.Колонки.Добавить("Метод");
|
||||
ТаблицаСостава.Колонки.Добавить("МетодПоиска");
|
||||
ТаблицаСостава.Колонки.Добавить("Параметр");
|
||||
ТаблицаСостава.Колонки.Добавить("Описание");
|
||||
ТаблицаСостава.Колонки.Добавить("ОписаниеМетода");
|
||||
ТаблицаСостава.Колонки.Добавить("Область");
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "bitrix24";
|
||||
НоваяСтрока.Модуль = "OPI_Bitrix24";
|
||||
НоваяСтрока.Метод = "СерверноеВремя";
|
||||
НоваяСтрока.МетодПоиска = "СЕРВЕРНОЕВРЕМЯ";
|
||||
НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена";
|
||||
НоваяСтрока.Описание = "URL внешнего веб";
|
||||
НоваяСтрока.Область = "Настройки и администрирование";
|
||||
НоваяСтрока.ОписаниеМетода = "Получает текущее серверное время";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "bitrix24";
|
||||
НоваяСтрока.Модуль = "OPI_Bitrix24";
|
||||
НоваяСтрока.Метод = "СерверноеВремя";
|
||||
НоваяСтрока.МетодПоиска = "СЕРВЕРНОЕВРЕМЯ";
|
||||
НоваяСтрока.Параметр = "--хук";
|
||||
НоваяСтрока.Описание = "Токен авторизации, если используется не веб (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Настройки и администрирование";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "bitrix24";
|
||||
НоваяСтрока.Модуль = "OPI_Bitrix24";
|
||||
НоваяСтрока.Метод = "СоздатьНовость";
|
||||
НоваяСтрока.МетодПоиска = "СОЗДАТЬНОВОСТЬ";
|
||||
НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена";
|
||||
НоваяСтрока.Описание = "URL внешнего веб";
|
||||
НоваяСтрока.Область = "Живая лента";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "bitrix24";
|
||||
НоваяСтрока.Модуль = "OPI_Bitrix24";
|
||||
НоваяСтрока.Метод = "УдалитьНовость";
|
||||
НоваяСтрока.МетодПоиска = "УДАЛИТЬНОВОСТЬ";
|
||||
НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена";
|
||||
НоваяСтрока.Описание = "URL внешнего веб";
|
||||
НоваяСтрока.Область = "Живая лента";
|
||||
|
||||
Возврат ТаблицаСостава;
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьСостав() Экспорт
|
||||
|
||||
ТаблицаСостава = Новый ТаблицаЗначений();
|
||||
ТаблицаСостава.Колонки.Добавить("Библиотека");
|
||||
ТаблицаСостава.Колонки.Добавить("Модуль");
|
||||
ТаблицаСостава.Колонки.Добавить("Метод");
|
||||
ТаблицаСостава.Колонки.Добавить("МетодПоиска");
|
||||
ТаблицаСостава.Колонки.Добавить("Параметр");
|
||||
ТаблицаСостава.Колонки.Добавить("Описание");
|
||||
ТаблицаСостава.Колонки.Добавить("ОписаниеМетода");
|
||||
ТаблицаСостава.Колонки.Добавить("Область");
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "bitrix24";
|
||||
НоваяСтрока.Модуль = "OPI_Bitrix24";
|
||||
НоваяСтрока.Метод = "СерверноеВремя";
|
||||
НоваяСтрока.МетодПоиска = "СЕРВЕРНОЕВРЕМЯ";
|
||||
НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена";
|
||||
НоваяСтрока.Описание = "URL внешнего веб";
|
||||
НоваяСтрока.Область = "Настройки и администрирование";
|
||||
НоваяСтрока.ОписаниеМетода = "Получает текущее серверное время";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "bitrix24";
|
||||
НоваяСтрока.Модуль = "OPI_Bitrix24";
|
||||
НоваяСтрока.Метод = "СерверноеВремя";
|
||||
НоваяСтрока.МетодПоиска = "СЕРВЕРНОЕВРЕМЯ";
|
||||
НоваяСтрока.Параметр = "--хук";
|
||||
НоваяСтрока.Описание = "Токен авторизации, если используется не веб (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Настройки и администрирование";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "bitrix24";
|
||||
НоваяСтрока.Модуль = "OPI_Bitrix24";
|
||||
НоваяСтрока.Метод = "СоздатьНовость";
|
||||
НоваяСтрока.МетодПоиска = "СОЗДАТЬНОВОСТЬ";
|
||||
НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена";
|
||||
НоваяСтрока.Описание = "URL внешнего веб";
|
||||
НоваяСтрока.Область = "Живая лента";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "bitrix24";
|
||||
НоваяСтрока.Модуль = "OPI_Bitrix24";
|
||||
НоваяСтрока.Метод = "УдалитьНовость";
|
||||
НоваяСтрока.МетодПоиска = "УДАЛИТЬНОВОСТЬ";
|
||||
НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена";
|
||||
НоваяСтрока.Описание = "URL внешнего веб";
|
||||
НоваяСтрока.Область = "Живая лента";
|
||||
|
||||
Возврат ТаблицаСостава;
|
||||
КонецФункции
|
||||
|
||||
|
@ -142,7 +142,7 @@
|
||||
НоваяСтрока.Метод = "ПолучитьИнформациюОбОбъекте";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОБОБЪЕКТЕ";
|
||||
НоваяСтрока.Параметр = "--detail";
|
||||
НоваяСтрока.Описание = "Добавляет дополнительные поля информации для медиафайлов (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Добавляет дополнительные поля информации для медиафайлов (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с файлами и каталогами";
|
||||
|
||||
|
||||
@ -173,7 +173,7 @@
|
||||
НоваяСтрока.Метод = "ПолучитьСписокФайловПапки";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКФАЙЛОВПАПКИ";
|
||||
НоваяСтрока.Параметр = "--detail";
|
||||
НоваяСтрока.Описание = "Добавляет дополнительные поля информации для медиафайлов (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Добавляет дополнительные поля информации для медиафайлов (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с файлами и каталогами";
|
||||
|
||||
|
||||
@ -245,7 +245,7 @@
|
||||
НоваяСтрока.Метод = "ЗагрузитьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ЗАГРУЗИТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--overwrite";
|
||||
НоваяСтрока.Описание = "Перезаписывать файл при конфликте путей (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Перезаписывать файл при конфликте путей (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с файлами и каталогами";
|
||||
|
||||
|
||||
@ -689,7 +689,7 @@
|
||||
НоваяСтрока.Метод = "ДобавитьПользователейКФайлу";
|
||||
НоваяСтрока.МетодПоиска = "ДОБАВИТЬПОЛЬЗОВАТЕЛЕЙКФАЙЛУ";
|
||||
НоваяСтрока.Параметр = "--readonly";
|
||||
НоваяСтрока.Описание = "Запрещает редактирование файла для стороннего пользователя (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Описание = "Запрещает редактирование файла для стороннего пользователя (необяз. по ум. - True)";
|
||||
НоваяСтрока.Область = "Настройки совместного доступа";
|
||||
|
||||
|
||||
@ -734,7 +734,7 @@
|
||||
НоваяСтрока.Метод = "ДобавитьПользователейКПапке";
|
||||
НоваяСтрока.МетодПоиска = "ДОБАВИТЬПОЛЬЗОВАТЕЛЕЙКПАПКЕ";
|
||||
НоваяСтрока.Параметр = "--readonly";
|
||||
НоваяСтрока.Описание = "Запрещает редактирование файла для стороннего пользователя (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Описание = "Запрещает редактирование файла для стороннего пользователя (необяз. по ум. - True)";
|
||||
НоваяСтрока.Область = "Настройки совместного доступа";
|
||||
|
||||
|
||||
|
@ -246,7 +246,7 @@
|
||||
НоваяСтрока.Метод = "ИзменитьКалендарьСписка";
|
||||
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬКАЛЕНДАРЬСПИСКА";
|
||||
НоваяСтрока.Параметр = "--hidden";
|
||||
НоваяСтрока.Описание = "Скрытый календарь (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Скрытый календарь (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа со списком календарей";
|
||||
|
||||
|
||||
|
@ -58,7 +58,7 @@
|
||||
НоваяСтрока.Метод = "ПолучитьСписокКаталогов";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОККАТАЛОГОВ";
|
||||
НоваяСтрока.Параметр = "--depth";
|
||||
НоваяСтрока.Описание = "Добавляет список файлов к полям каталога (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Добавляет список файлов к полям каталога (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с файлами и каталогами";
|
||||
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
НоваяСтрока.Метод = "СформироватьСсылкуПолученияКода";
|
||||
НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬССЫЛКУПОЛУЧЕНИЯКОДА";
|
||||
НоваяСтрока.Параметр = "--calendar";
|
||||
НоваяСтрока.Описание = "разрешение на методы Calendar (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Описание = "разрешение на методы Calendar (необяз. по ум. - True)";
|
||||
НоваяСтрока.Область = "Программный интерфейс";
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
НоваяСтрока.Метод = "СформироватьСсылкуПолученияКода";
|
||||
НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬССЫЛКУПОЛУЧЕНИЯКОДА";
|
||||
НоваяСтрока.Параметр = "--drive";
|
||||
НоваяСтрока.Описание = "разрешение на методы Drive (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Описание = "разрешение на методы Drive (необяз. по ум. - True)";
|
||||
НоваяСтрока.Область = "Программный интерфейс";
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
НоваяСтрока.Метод = "СформироватьСсылкуПолученияКода";
|
||||
НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬССЫЛКУПОЛУЧЕНИЯКОДА";
|
||||
НоваяСтрока.Параметр = "--sheets";
|
||||
НоваяСтрока.Описание = "разрешение на методы Sheets (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Описание = "разрешение на методы Sheets (необяз. по ум. - True)";
|
||||
НоваяСтрока.Область = "Программный интерфейс";
|
||||
|
||||
|
||||
|
@ -165,7 +165,7 @@
|
||||
НоваяСтрока.Метод = "ИзменитьСвойстваСтраницы";
|
||||
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬСВОЙСТВАСТРАНИЦЫ";
|
||||
НоваяСтрока.Параметр = "--archive";
|
||||
НоваяСтрока.Описание = "Архивировать страницу или нет (булево) (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Архивировать страницу или нет (булево) (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа со страницами";
|
||||
|
||||
|
||||
@ -381,7 +381,7 @@
|
||||
НоваяСтрока.Метод = "ВернутьБлок";
|
||||
НоваяСтрока.МетодПоиска = "ВЕРНУТЬБЛОК";
|
||||
НоваяСтрока.Параметр = "--core";
|
||||
НоваяСтрока.Описание = "Истина > служебные поля удаляются, остается только сам блок (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Описание = "Истина > служебные поля удаляются, остается только сам блок (необяз. по ум. - True)";
|
||||
НоваяСтрока.Область = "Работа с блоками";
|
||||
|
||||
|
||||
|
@ -272,7 +272,7 @@
|
||||
НоваяСтрока.Метод = "УдалитьСообщение";
|
||||
НоваяСтрока.МетодПоиска = "УДАЛИТЬСООБЩЕНИЕ";
|
||||
НоваяСтрока.Параметр = "--issheduled";
|
||||
НоваяСтрока.Описание = "Признак удаления отложенного сообщения (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Признак удаления отложенного сообщения (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с сообщениями";
|
||||
|
||||
|
||||
@ -396,7 +396,7 @@
|
||||
НоваяСтрока.Метод = "ПолучитьСписокКаналов";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОККАНАЛОВ";
|
||||
НоваяСтрока.Параметр = "--notarchived";
|
||||
НоваяСтрока.Описание = "Признак исключения архивированных каналов (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Признак исключения архивированных каналов (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с каналами";
|
||||
|
||||
|
||||
@ -468,7 +468,7 @@
|
||||
НоваяСтрока.Метод = "СоздатьКанал";
|
||||
НоваяСтрока.МетодПоиска = "СОЗДАТЬКАНАЛ";
|
||||
НоваяСтрока.Параметр = "--private";
|
||||
НоваяСтрока.Описание = "Создать канал приватным (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Создать канал приватным (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с каналами";
|
||||
|
||||
|
||||
|
@ -703,7 +703,7 @@
|
||||
НоваяСтрока.Метод = "ОтправитьОпрос";
|
||||
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬОПРОС";
|
||||
НоваяСтрока.Параметр = "--anonymous";
|
||||
НоваяСтрока.Описание = "Анонимность опроса (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Описание = "Анонимность опроса (необяз. по ум. - True)";
|
||||
НоваяСтрока.Область = "Отправка данных";
|
||||
|
||||
|
||||
@ -769,7 +769,7 @@
|
||||
НоваяСтрока.Метод = "СформироватьКлавиатуруПоМассивуКнопок";
|
||||
НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬКЛАВИАТУРУПОМАССИВУКНОПОК";
|
||||
НоваяСтрока.Параметр = "--under";
|
||||
НоваяСтрока.Описание = "Клавиатура под сообщением или на нижней панели (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Клавиатура под сообщением или на нижней панели (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Отправка данных";
|
||||
|
||||
|
||||
@ -779,7 +779,7 @@
|
||||
НоваяСтрока.Метод = "СформироватьКлавиатуруПоМассивуКнопок";
|
||||
НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬКЛАВИАТУРУПОМАССИВУКНОПОК";
|
||||
НоваяСтрока.Параметр = "--column";
|
||||
НоваяСтрока.Описание = "Истина > кнопки выводятся в столбик, Ложь > в строку (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Описание = "Истина > кнопки выводятся в столбик, Ложь > в строку (необяз. по ум. - True)";
|
||||
НоваяСтрока.Область = "Отправка данных";
|
||||
|
||||
|
||||
|
@ -62,7 +62,7 @@
|
||||
НоваяСтрока.Метод = "СоздатьПост";
|
||||
НоваяСтрока.МетодПоиска = "СОЗДАТЬПОСТ";
|
||||
НоваяСтрока.Параметр = "--ad";
|
||||
НоваяСтрока.Описание = "Признак ""Это реклама"" (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Признак ""Это реклама"" (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с группой";
|
||||
|
||||
|
||||
@ -126,7 +126,7 @@
|
||||
НоваяСтрока.Метод = "СоздатьСоставнойПост";
|
||||
НоваяСтрока.МетодПоиска = "СОЗДАТЬСОСТАВНОЙПОСТ";
|
||||
НоваяСтрока.Параметр = "--ad";
|
||||
НоваяСтрока.Описание = "Признак ""Это реклама"" (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Признак ""Это реклама"" (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с группой";
|
||||
|
||||
|
||||
@ -590,7 +590,7 @@
|
||||
НоваяСтрока.Метод = "ЗакрытьОбсуждение";
|
||||
НоваяСтрока.МетодПоиска = "ЗАКРЫТЬОБСУЖДЕНИЕ";
|
||||
НоваяСтрока.Параметр = "--remove";
|
||||
НоваяСтрока.Описание = "Удалить полностью (Истина) или закрыть (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Удалить полностью (Истина) или закрыть (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с обсуждениями";
|
||||
|
||||
|
||||
@ -760,7 +760,7 @@
|
||||
НоваяСтрока.Метод = "СделатьРепост";
|
||||
НоваяСтрока.МетодПоиска = "СДЕЛАТЬРЕПОСТ";
|
||||
НоваяСтрока.Параметр = "--ad";
|
||||
НоваяСтрока.Описание = "Признак рекламного поста (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Признак рекламного поста (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Интерактивные действия";
|
||||
|
||||
|
||||
@ -1544,7 +1544,7 @@
|
||||
НоваяСтрока.Метод = "СоздатьПодборкуТоваров";
|
||||
НоваяСтрока.МетодПоиска = "СОЗДАТЬПОДБОРКУТОВАРОВ";
|
||||
НоваяСтрока.Параметр = "--main";
|
||||
НоваяСтрока.Описание = "Основная (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Основная (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с подборками товаров";
|
||||
|
||||
|
||||
@ -1554,7 +1554,7 @@
|
||||
НоваяСтрока.Метод = "СоздатьПодборкуТоваров";
|
||||
НоваяСтрока.МетодПоиска = "СОЗДАТЬПОДБОРКУТОВАРОВ";
|
||||
НоваяСтрока.Параметр = "--hidden";
|
||||
НоваяСтрока.Описание = "Скрытая (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Скрытая (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с подборками товаров";
|
||||
|
||||
|
||||
@ -1614,7 +1614,7 @@
|
||||
НоваяСтрока.Метод = "ИзменитьПодборкуТоваров";
|
||||
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬПОДБОРКУТОВАРОВ";
|
||||
НоваяСтрока.Параметр = "--main";
|
||||
НоваяСтрока.Описание = "Основная (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Основная (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с подборками товаров";
|
||||
|
||||
|
||||
@ -1624,7 +1624,7 @@
|
||||
НоваяСтрока.Метод = "ИзменитьПодборкуТоваров";
|
||||
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬПОДБОРКУТОВАРОВ";
|
||||
НоваяСтрока.Параметр = "--hidden";
|
||||
НоваяСтрока.Описание = "Скрытая (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Скрытая (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с подборками товаров";
|
||||
|
||||
|
||||
|
@ -90,7 +90,7 @@
|
||||
НоваяСтрока.Метод = "УдалитьОбъект";
|
||||
НоваяСтрока.МетодПоиска = "УДАЛИТЬОБЪЕКТ";
|
||||
НоваяСтрока.Параметр = "--can";
|
||||
НоваяСтрока.Описание = "В корзину (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Описание = "В корзину (необяз. по ум. - True)";
|
||||
НоваяСтрока.Область = "Работа с файлами и папками";
|
||||
|
||||
|
||||
@ -131,7 +131,7 @@
|
||||
НоваяСтрока.Метод = "СоздатьКопиюОбъекта";
|
||||
НоваяСтрока.МетодПоиска = "СОЗДАТЬКОПИЮОБЪЕКТА";
|
||||
НоваяСтрока.Параметр = "--rewrite";
|
||||
НоваяСтрока.Описание = "Перезаписывать если файл с таким именем уже существует (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Перезаписывать если файл с таким именем уже существует (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с файлами и папками";
|
||||
|
||||
|
||||
@ -237,7 +237,7 @@
|
||||
НоваяСтрока.Метод = "ПолучитьСписокФайлов";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКФАЙЛОВ";
|
||||
НоваяСтрока.Параметр = "--datesort";
|
||||
НоваяСтрока.Описание = "Истина > сортировать по дате, Ложь > по алфавиту (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Истина > сортировать по дате, Ложь > по алфавиту (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с файлами и папками";
|
||||
|
||||
|
||||
@ -278,7 +278,7 @@
|
||||
НоваяСтрока.Метод = "ПереместитьОбъект";
|
||||
НоваяСтрока.МетодПоиска = "ПЕРЕМЕСТИТЬОБЪЕКТ";
|
||||
НоваяСтрока.Параметр = "--rewrite";
|
||||
НоваяСтрока.Описание = "Перезаписывать если файл с таким именем уже существует (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Перезаписывать если файл с таким именем уже существует (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с файлами и папками";
|
||||
|
||||
|
||||
@ -319,7 +319,7 @@
|
||||
НоваяСтрока.Метод = "ЗагрузитьФайл";
|
||||
НоваяСтрока.МетодПоиска = "ЗАГРУЗИТЬФАЙЛ";
|
||||
НоваяСтрока.Параметр = "--rewrite";
|
||||
НоваяСтрока.Описание = "Перезаписывать, если файл с таким именем уже существует (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Описание = "Перезаписывать, если файл с таким именем уже существует (необяз. по ум. - False)";
|
||||
НоваяСтрока.Область = "Работа с файлами и папками";
|
||||
|
||||
|
||||
|
@ -6,21 +6,21 @@
|
||||
|
||||
Функция ПолучитьСоответствиеКомандМодулей() Экспорт
|
||||
СоответствиеКомандМодулей = Новый Соответствие();
|
||||
СоответствиеКомандМодулей.Вставить("airtable", "OPI_Airtable");
|
||||
СоответствиеКомандМодулей.Вставить("bitrix24", "OPI_Bitrix24");
|
||||
СоответствиеКомандМодулей.Вставить("dropbox", "OPI_Dropbox");
|
||||
СоответствиеКомандМодулей.Вставить("yandex", "OPI_YandexID");
|
||||
СоответствиеКомандМодулей.Вставить("slack", "OPI_Slack");
|
||||
СоответствиеКомандМодулей.Вставить("viber", "OPI_Viber");
|
||||
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
|
||||
СоответствиеКомандМодулей.Вставить("gcalendar", "OPI_GoogleCalendar");
|
||||
СоответствиеКомандМодулей.Вставить("yadisk", "OPI_YandexDisk");
|
||||
СоответствиеКомандМодулей.Вставить("vk", "OPI_VK");
|
||||
СоответствиеКомандМодулей.Вставить("gdrive", "OPI_GoogleDrive");
|
||||
СоответствиеКомандМодулей.Вставить("notion", "OPI_Notion");
|
||||
СоответствиеКомандМодулей.Вставить("airtable", "OPI_Airtable");
|
||||
СоответствиеКомандМодулей.Вставить("dropbox", "OPI_Dropbox");
|
||||
СоответствиеКомандМодулей.Вставить("twitter", "OPI_Twitter");
|
||||
СоответствиеКомандМодулей.Вставить("bitrix24", "OPI_Bitrix24");
|
||||
СоответствиеКомандМодулей.Вставить("gsheets", "OPI_GoogleSheets");
|
||||
СоответствиеКомандМодулей.Вставить("google", "OPI_GoogleWorkspace");
|
||||
СоответствиеКомандМодулей.Вставить("notion", "OPI_Notion");
|
||||
СоответствиеКомандМодулей.Вставить("slack", "OPI_Slack");
|
||||
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
|
||||
СоответствиеКомандМодулей.Вставить("twitter", "OPI_Twitter");
|
||||
СоответствиеКомандМодулей.Вставить("viber", "OPI_Viber");
|
||||
СоответствиеКомандМодулей.Вставить("vk", "OPI_VK");
|
||||
СоответствиеКомандМодулей.Вставить("yadisk", "OPI_YandexDisk");
|
||||
СоответствиеКомандМодулей.Вставить("yandex", "OPI_YandexID");
|
||||
Возврат СоответствиеКомандМодулей;
|
||||
КонецФункции
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user