From febe30823f1b85c6dc26d65c3a49e69cfd117ab2 Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 12 Mar 2024 20:23:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20Google=20Drive?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/docs/Google_Calendar/Google_Calendar.md | 9 ++ docs/docs/Google_Drive/Google_Drive.md | 97 +++++++++++++ .../Poluchit-obekt.md | 134 ++++++++++++++++++ .../_category_.json | 4 + docs/docs/Google_Drive/_category_.json | 8 ++ docs/static/img/APIs/GoogleDrive.png | Bin 0 -> 2277 bytes docs/static/img/Docs/GoogleDrive/1.png | Bin 0 -> 28970 bytes 7 files changed, 252 insertions(+) create mode 100644 docs/docs/Google_Drive/Google_Drive.md create mode 100644 docs/docs/Google_Drive/Rabota-s-fajlami-i-papkami/Poluchit-obekt.md create mode 100644 docs/docs/Google_Drive/Rabota-s-fajlami-i-papkami/_category_.json create mode 100644 docs/docs/Google_Drive/_category_.json create mode 100644 docs/static/img/APIs/GoogleDrive.png create mode 100644 docs/static/img/Docs/GoogleDrive/1.png diff --git a/docs/docs/Google_Calendar/Google_Calendar.md b/docs/docs/Google_Calendar/Google_Calendar.md index c1625155d..66789beab 100644 --- a/docs/docs/Google_Calendar/Google_Calendar.md +++ b/docs/docs/Google_Calendar/Google_Calendar.md @@ -8,8 +8,14 @@ id: GoogleCalendar Этот раздел посвящен библиотеке для работы с API Google Календаря. На данной странице описаны все действия, необходимые для полноценного начала работы +:::important +Если вы уже используете ОПИ для работы с другими сервисами Google Workspase и выполняли стартовую настройку, то пункты **Создание проекта** и **Настройка OAuth** можно пропустить. Необходимо лишь **включить сервис Google Drive** в своем проекте и **заново получить токен** (последние два пункта инструкции). +::: + ## Начало работы +
+ ### Создание проекта 1. Перейдите на [главную страницу Google Cloud](https://console.cloud.google.com) и создайте проект @@ -36,6 +42,7 @@ id: GoogleCalendar ![BF](../../static/img/Docs/GoogleCalendar/6.png) +
### Настройка OAuth @@ -51,6 +58,7 @@ id: GoogleCalendar ![BF](../../static/img/Docs/GoogleCalendar/9.png) +
### Включение сервиса Google Calendar @@ -60,6 +68,7 @@ id: GoogleCalendar ![BF](../../static/img/Docs/GoogleCalendar/12.png) +
### Получение Токена diff --git a/docs/docs/Google_Drive/Google_Drive.md b/docs/docs/Google_Drive/Google_Drive.md new file mode 100644 index 000000000..313dbdcb1 --- /dev/null +++ b/docs/docs/Google_Drive/Google_Drive.md @@ -0,0 +1,97 @@ +--- +id: GoogleDrive +--- + + + +# Google Drive + +Этот раздел посвящен библиотеке для работы с API Google Drive. На данной странице описаны все действия, необходимые для полноценного начала работы + +:::important +Если вы уже используете ОПИ для работы с другими сервисами Google Workspase и выполняли стартовую настройку, то пункты **Создание проекта** и **Настройка OAuth** можно пропустить. Необходимо лишь **включить сервис Google Drive** в своем проекте и **заново получить токен** (последние два пункта инструкции). +::: + +## Начало работы + +
+ +### Создание проекта + +1. Перейдите на [главную страницу Google Cloud](https://console.cloud.google.com) и создайте проект + +![BF](../../static/img/Docs/GoogleCalendar/1.png) + +2. Выберите созданный проект и в боковом меню перейдите APIs and Services -> OAuth consent screen + +![BF](../../static/img/Docs/GoogleCalendar/2.png) + +3. Выберите пункт External + +![BF](../../static/img/Docs/GoogleCalendar/3.png) + +4. Заполните поля App name, User support email и Email addresses (все поля со звездочками) + +![BF](../../static/img/Docs/GoogleCalendar/4.png) + +5. Нажимайте далее и Save and continue на последней вкладке + +![BF](../../static/img/Docs/GoogleCalendar/5.png) + +6. Нажмите Publish App + +![BF](../../static/img/Docs/GoogleCalendar/6.png) + +
+ +### Настройка OAuth + +1. В боковом меню выберите пункт Credentials -> Create Credentials -> OAuth client ID + +![BF](../../static/img/Docs/GoogleCalendar/7.png) + +2. Введите имя и выберите Application type - Desktop app + +![BF](../../static/img/Docs/GoogleCalendar/8.png) + +3. Сохраните ClientID и Client Secret + +![BF](../../static/img/Docs/GoogleCalendar/9.png) + +
+ +### Включение сервиса Google Drive + +1. Перейдите на [страницу Drive в Marketplace](https://console.cloud.google.com/marketplace/product/google/drive.googleapis.com) + +2. Нажмите Enable + +![BF](../../static/img/Docs/GoogleDrive/1.png) + +
+ +### Получение Токена + +1. Передайте ClientID в функцию OPI_GoogleWorkspace.СформироватьСсылкуПолученияКода(ClientID). Результатом функции будет URL, который необходимо открыть в браузере. Авторизуйтесь при помощи своего аккаунта Google + +![BF](../../static/img/Docs/GoogleCalendar/10.png) + +2. Скопируйте код из URL после авторизации + +![BF](../../static/img/Docs/GoogleCalendar/11.png) + +3. Используйте полученный код, ClientID и Client Secret для вызова функции OPI_GoogleWorkspace.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code) + +```json title="Результат функции ПолучитьТокенПоКоду(), если перевести его в JSON" + +{ + "token_type": "Bearer", + "refresh_token": "1//09au6OES3JN9oCgYIARAAGAkSNwF-L9Ir1B7uawfwafT1wE0FKO519Xj6JxawfawfyjMyJ_QlUZYLHZqw", + "scope": "https://www.googleapis.com/auth/...", + "expires_in": 3599, + "access_token": "ya29.a0AfB_byA344tXkIawdawdwadadhyZQV8bSZn_snNXtY2HLb7l71awdawdawdad-ASgpzyOSWIvEmPruhUa_1yCCq6jvoD0r_q-fNEsARrH8zpJ3c6LNGWvwdg8CXsSxYaCgYKAWkSawfwafawfrCK0EP5kZY_A0171" +} + +``` + +4. Используйте **access_token** для передачи в качестве параметра Токен при вызове функций библиотеки, а refresh_token - для получения нового access_token (функция OPI_GoogleWorkspace.ОбновитьТокен(ClientID, ClientSecret, RefreshToken)), когда время жизни старого истечет. При обновлении токена refresh_token не обновляется - вы можете использовать его один и тот же для получения нового access_token каждый раз. diff --git a/docs/docs/Google_Drive/Rabota-s-fajlami-i-papkami/Poluchit-obekt.md b/docs/docs/Google_Drive/Rabota-s-fajlami-i-papkami/Poluchit-obekt.md new file mode 100644 index 000000000..2f93a44ae --- /dev/null +++ b/docs/docs/Google_Drive/Rabota-s-fajlami-i-papkami/Poluchit-obekt.md @@ -0,0 +1,134 @@ +--- +sidebar_position: 1 +--- + +# Получить информацию об объекте +Получает информацию о файле или каталоге + +*Функция ПолучитьИнформациюОбОбъекте(Знач Токен, Знач Идентификатор) Экспорт* + + | Параметр | Тип | Назначение | + |-|-|-| + | Токен | Строка | Токен доступа | + | Идентификатор | Строка | Идентификатор объекта | + + Вовзращаемое значение: Соответствие - сериализованный JSON ответа от Yandex + +```bsl title="Пример кода" + + Идентификатор = "1dg_MwwwPSPYT0p3y-8dvGWoapbwaaaaa"; + + Ответ = OPI_GoogleDrive.ПолучитьИнформациюОбОбъекте(Токен, Идентификатор); //Соответствие + Ответ = OPI_Инструменты.JSONСтрокой(Ответ); //Строка + +``` + + +```json title="Результат" + +{ + "linkShareMetadata": { + "securityUpdateEnabled": true, + "securityUpdateEligible": false + }, + "quotaBytesUsed": "0", + "folderColorRgb": "#8f8f8f", + "writersCanShare": true, + "lastModifyingUser": { + "emailAddress": "bayselonarrend@gmail.com", + "permissionId": "07468399490707249352", + "me": true, + "photoLink": "https://lh3.googleusercontent.com/a/ACg8ocLx8JGurt0UjXFwwTiB6ZoDPWslW1EnfCTahrwrIllM6Q=s64", + "displayName": "Антон Титовец", + "kind": "drive#user" + }, + "modifiedByMe": true, + "capabilities": { + "canUntrash": true, + "canTrash": true, + "canRemoveMyDriveParent": true, + "canRemoveContentRestriction": false, + "canRemoveChildren": true, + "canMoveItemWithinDrive": true, + "canMoveItemOutOfDrive": true, + "canMoveItemIntoTeamDrive": true, + "canModifyLabels": false, + "canModifyOwnerContentRestriction": false, + "canReadRevisions": false, + "canModifyContentRestriction": false, + "canShare": true, + "canModifyContent": true, + "canDownload": true, + "canMoveChildrenWithinDrive": true, + "canCopy": false, + "canModifyEditorContentRestriction": false, + "canChangeSecurityUpdateEnabled": false, + "canRename": true, + "canChangeCopyRequiresWriterPermission": false, + "canDelete": true, + "canChangeViewersCanCopyContent": false, + "canEdit": true, + "canReadLabels": false, + "canAddMyDriveParent": false, + "canComment": true, + "canAddChildren": true, + "canListChildren": true, + "canAcceptOwnership": false + }, + "copyRequiresWriterPermission": false, + "modifiedTime": "2023-12-28T13:22:03.333Z", + "createdTime": "2023-12-28T13:22:00.683Z", + "viewedByMeTime": "2023-12-28T13:22:00.683Z", + "viewedByMe": true, + "shared": false, + "hasThumbnail": false, + "version": "3", + "owners": [ + { + "emailAddress": "bayselonarrend@gmail.com", + "permissionId": "07468399490707249352", + "me": true, + "photoLink": "https://lh3.googleusercontent.com/a/ACg8ocLx8JGurt0UjXFwwTiB6ZoDPWslW1EnfCTahrwrIllM6Q=s64", + "displayName": "Антон Титовец", + "kind": "drive#user" + } + ], + "isAppAuthorized": false, + "webViewLink": "https://drive.google.com/drive/folders/1dg_MhZrLoPSPYT0p3y-8dvGWoapbwiDm", + "spaces": [ + "drive" + ], + "modifiedByMeTime": "2023-12-28T13:22:03.333Z", + "permissionIds": [ + "07468399490707249352" + ], + "explicitlyTrashed": false, + "parents": [ + "1603PU_Hrkvj4HeFJKYSVxZJDRoGvd3SJ" + ], + "ownedByMe": true, + "trashed": false, + "iconLink": "https://drive-thirdparty.googleusercontent.com/16/type/application/vnd.google-apps.folder", + "viewersCanCopyContent": true, + "mimeType": "application/vnd.google-apps.folder", + "permissions": [ + { + "pendingOwner": false, + "photoLink": "https://lh3.googleusercontent.com/a/ACg8ocLx8JGurt0UjXFwwTiB6ZoDPWslW1EnfCTahrwrIllM6Q=s64", + "role": "owner", + "emailAddress": "bayselonarrend@gmail.com", + "type": "user", + "deleted": false, + "displayName": "Антон Титовец", + "id": "07468399490707249352", + "kind": "drive#permission" + } + ], + "name": "ОПИ", + "starred": false, + "id": "1dg_MwwwPSPYT0p3y-8dvGWoapbwaaaaa", + "kind": "drive#file", + "thumbnailVersion": "0" +} + +``` diff --git a/docs/docs/Google_Drive/Rabota-s-fajlami-i-papkami/_category_.json b/docs/docs/Google_Drive/Rabota-s-fajlami-i-papkami/_category_.json new file mode 100644 index 000000000..af84372eb --- /dev/null +++ b/docs/docs/Google_Drive/Rabota-s-fajlami-i-papkami/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Работа с файлами и папками", + "position": 1, +} diff --git a/docs/docs/Google_Drive/_category_.json b/docs/docs/Google_Drive/_category_.json new file mode 100644 index 000000000..628760961 --- /dev/null +++ b/docs/docs/Google_Drive/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Google Drive", + "position": 8, + "link": { + "type": "doc", + "id": "GoogleDrive" + } +} diff --git a/docs/static/img/APIs/GoogleDrive.png b/docs/static/img/APIs/GoogleDrive.png new file mode 100644 index 0000000000000000000000000000000000000000..ee10a0d1aacfae975f19f3e24ed0af92cb4a6669 GIT binary patch literal 2277 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2zp6GK~#8N?V4+h zRaX_q*S_!9+{et^DFXu(NT=c>kv14=qF8A?4V6@}A8Jt)6^(W9k(Lx|rL;mzs%arA z)~QA)jfu?-@Wm)iATgn8F>P9{tu?JmtM&!7ba)If_iX>`?0uPg=RVGBGnjOK$=YY_ zeJAJaz1G_Ap(&=A;vJ39PxIWr@Le=AI)pDQMQ#?v@3&->=s#6SzujCqy=C2+zdxtT zjdFeru_F>8Q|l|g!+qf5B2J1Z!ekdE#H4j3DD z`&@QRF23j$!I7Z34@Tf`7{hb~3_&hcDu_k|mAjl!_Ji~1Qqa)ATa=2QsW$+>dyP`f zV9o#)YX;J_Dx+b~=hH;lq(rySg`IJR3xxjd#WV7xmk?CQxJH3fnW~^| zVbGvI9;Jt1L6IfXB?wk za@33WYg`8Tl2U^a+yE7;8|imc#v|g5{NJn za0_InQhgA?;;0YPqNe8TFAp50SPWBuf4B}@mp}wFK*hQQX|NTUGc6_sb){v5J3hSs z{hm?z?&51AfcI;xK@<#X-4{V4;0_3e^nhS(#7krw!H~hsc*Bgto)=1O;JU0=sz3Z2 zpkjRp=?awz2uDGh7e_f7?mJEcxubptzILoY6nt3go(U2G-_y@xX9}-LPjwEFta!8JxQ<^_syp5c z&}y$Aj)Rb2DAi#*gv(5^7G1&9nSs{`;Qe=xQjM^luHReLIw4$H4>XOnfzJ&1e8Ls? zF`#1czWZ?qZ$VA42aW%v)*FD=cHz~L?-e>cE+Z6Z0``GVx22sF&bFa!7VIgFdQk!XQfQrQvhhx?ahPFIwRlu4q4ao` zx%=0=C7n1X_(R&1i{(c9t5@t6)%Ylhme^;%NgI}zPv4!i#eDrsAlQ5& zf5&r9-Nq}p>cxK}7w#VqB+1$R{glciMaOGkpKv9g7g5@D_yt=1*mWcYoQHg1B%QqI z@q^A(Kko5(bsxnL1VJTwmbwcmN*ZoF!*831u61YcJbK~MZ&Ezu zAAkhDn-P(yEEX_?7zz4j*xzUH@<(PZqtl5c=v{%24cMMPQfj>ch6n$EG}xlUwyE5e zr+6YMT3vmcVh~ZVB|D9tx_F49V{MNW+<2&O-=F@d^`=3O7YV#(_6`~xkH=-cs|fY{ zHNHj(-`GC=N*d`}Ny7HMKH|1DT3R_ghBdAchP^4%qcAkR2kuqkQUnTQ& zVD4&)+JDofp4kfTH!RL3MgVg^Z`ic z6<$a+EzX(^Fg*AcQqLC^y%_i+eCI!jWHF8%h$U(7oX;S~relRn z_Nr2;JH$Tp{LzIrKa(!gM^2^2df(iBbIpPE7)Y&&1@zt00000NkvXXu0mjfR>xGU literal 0 HcmV?d00001 diff --git a/docs/static/img/Docs/GoogleDrive/1.png b/docs/static/img/Docs/GoogleDrive/1.png new file mode 100644 index 0000000000000000000000000000000000000000..ae74317055b880df46be948cb50f5520411f2e79 GIT binary patch literal 28970 zcmdSARaBcz^fyXfC{UcD#fuj&1PBx;u0=|)7S~X`Sb!FHcL?t8o)&j^cXtnj^F16;lwyz^DkvMErP$uD|*zt!0maf!+4-dqns_)(ZpU zCrm~{OzoH6;o>VDg3b09C#C{KZ%3XH5T9avB{*#(8^x1X=umYh#IN!}Sn9Q1RQV=Wh*T;mTFjt zn?>oa?6p5aMgoJ=<9Cr4PrX=PP${u5QC5heq z5%gw&rKdK%xH_J$@BrXfB$Pe-*FV_bIU_he(9K(zB;|dDr1bWNJ)L?k$(1n-R|5k1Oy?Q*e`I~UH0YV17)KB82r8DjB zZI-Kh4Y%bOx$=2(;V4bn8UHZEo|h&wVl+aEn@Rz~gJMeiILwjFJFm25j~h|s@*`|f zq+!+Wqkeu|!c6@W7=_-|BI)fMY4sl>I4-MTp_;;BW)PDglItlL zU54ICub_!7@ieJ$%0V3U&NN}Sn~bDYQpAo|wYQm${#FLHgI57eRa9!!dlHhH3L+Wv zCN>n})UIH_H}L9gCJFES3;iO(C4Fl)w4RJBo-qP@**zu=vp_vvaSPC;1w#?<41j~+-? zEe>mYrkBO`6XCecCu90vFaisdDFj^Q0dN($c+YMeb={@VKb8pp%j;iN$LT++G$|Tl zd#9(vVAI!^-#lYEc2pA0EmrpC`0q+%Pkp;hYdyKQZ-DNv&;pRp*S?%)v1(fSP9d2J z%S9)YkNw%1uV8o=;5NFe6{kDga=t6D$ZBT9WM*F6jQ+m21|fD>U)$-aDxG#crjJej zsnTP2U+Fgjc)tnTK`(%ZwE1SHb=3L>56vMXMI&c-AWg+ z_N+pvF_%`2U_nMLdi{=;iCxdL8v0T7<4=j*x>~u~s*1y(8wDF_JoeW*I=XDFAxSfN zp&EO|+d}R)0YgJ<-em@(x0Rv3#w_L)Vb|y5I|~h83xb>NMNlEg6y&bFg4ADCg+H!B zBDfd9n>Vr0yXq?N_aD^O+xL^x$H19N;VA3-ujDC*70ig6vGC@d$1Nft!t?qM1Y5eV zv~F67b^BMY%YJW0()0)^hmv1q_;pTeatb{S4IWTbz%iYYAMTmAEt)arQb^-0KrHPpMmDpE zoqs8J6JDzluAH-e{|v*6cw7CYXE(?8ICSiJCNuBx=-aDb2Y_KGgoOUPWj3`TL_n@6 zggiL6rEO-aFxz*b=%g*#clxmz`GyqnqCOW|Fzbwcj61=DTpTczLC+LKw?t{DjF(?xnR`LPL{ zxEY-DtmB}*E`FU4-Kk4E4g z-qKnh+GHgj=((Ik$3G6;wN_o!HvSkgdRYl_jZJ-wczb^r10I0BT!jt`F2eW!z)+O% z@o$yJw_UKrai;T|x@c^W;vxyI%l91Tt;CbHuLpBVo&kAQBISRzlioFqd4_NLSmQEg z(emMFu%@8om~B(>?(c90)?k2l!X?5$Oh)dbc^NY38$IWp>uCR}7Kr8UjE!MXT%n~@ znnX#WV+Yveq<3f8GjUePy^EibvTA&fxZ1;?A$Z??^wo{bBaD@2g@Y&jji8%E%i@ac zi`J2EQ=aA;1;o=5@t(UvSU(*8DqCpUEIb_-TXIN{^BzdiIcqv$;5M3TOW%APNrBHh zQ2z|0ylq}74_r8rH;}9-R8CjDrCiRC ze9(H~o+@d{yI-SpRZ7!mXo#18Y<9Ou$%bEny|~J3E{n;>twg&jXeve)@3rq*�lh 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 literal 0 HcmV?d00001