Для работы с документами в Google Docs нужно настроить социальный севис Google. Предположим что у вас есть свой аккаунт в google. Переходим по ссылке https://console.developers.google.com/
У меня уже был ранее создан проект, поэтому мой экран будет немного отличаться от вашего, но это не существенно. На рисунке выше (у меня уже создан проект test,но мы его не трогаем) нажимаем - Create project Появляется всплывающее окно, в него вводим название проекта. Я задал имя - Bitrix test api. Остальные настройки устраивают и просто нажимаем Create. После создания приложения у вас откроется dashboard. Кликаем Creditinals и попадаем на следующую форму. В данный момент она нам не нужна и смело на вкладках выше переходим на 2 вкладку После перехода заполняем поля (последние 2 ссылки и изображения не обязательны). После сохранения переходим в 1 вкладку - Creditinals. Выбираем пункт с OAuth client id Нас перебрасывает на форму, где мы отмечаем первый пункт - web, вводим название (не принципиально какое) и пишем в Authorized redirect uri ссылку которую нам битрикс выдает в админке. (ссылка вида: http://#сайт#/bitrix/tools/oauth/google.php)
Нажимаем сохранить. И если вы сделали все правильно вам выдадут ключи для записи в битрикс.
Охохо... интересная задачка! Особенно когда документации не то, что по диску, по корпоративному порталу не проработано.
Насколько я знаю все сущности диска (папки и файлы) являются обьектами и хранятся в b_disk_object. Высокоуровнего доступа (с Drive по цепочке в Storage и т.д.) к этим данным пока еще нет (и неизвестно будут ли). Значит пойдем другим путем. Предположим мы хотим достать все файлы, загруженные в хранилище "Маркетинговые документы".
Поехали:
Код
<?php
// Будем считать что пролог уже подключен
// Для уменьшения кода
use \Bitrix\Main\Loader;
use \Bitrix\Disk\Internals\ObjectTable as Objects;
// 492 - идентификатор хранилища "Маркетинговые документы" в b_disk_storage
$iStorage = 492;
if ( Loader::IncludeModule('disk') ) {
$resObjects = Objects::getList([
'select' => ['ID'], // Для простоты - будем доставать только ID
'filter' => [
'STORAGE_ID' => $iStorage,
'>=CREATE_TIME' => date('d.m.Y 00:00:00',strtotime('now - 120 days')), // предположим что достаем все события за 120 дней с текущей даты
'TYPE' => Objects::TYPE_FILE, // Доставать будет только файлы (папки трогать не будем)
]
]);
while( $arObject = $resObjects->fetch() ) {
// как-то работаем с Id файла
// например var_dump($arObject['ID']);
}
} else {
// вывод ошибки
}?>
Ну вот собственно и все Класс Objects это описание таблицы (d7), так что можно дальше извращаться как угодно. В решение есть несколько, если уж не костылей, то "палок" уж точно. Хардкодить конечно не очень хорошо, но что делать, если своего инструмента нет.
Достаточно создать файл: /home/bitrix/www/.htsecure
Даже скажу чуть больше. Ошибка 400 возникает (по крайней мере у нас) когда вы пытаетесь обратиться с портом 443 по протоколу httP или по порту 80 с httPS. У вас даже в Location: [URL=http://test.com:443/xyz/]http://test.com:443/xyz/[/URL] прописано