unilog
@unilog
начинающий программист

Чат-бот для Битрикс24. Как скачать вложения сообщений (фото, аудио и т.п.)?

Разрабатываю бота для Битрикс24 (приложение внешнее (серверное)). Задача - сохранить вложения сообщения (прикрепленные файлы). В $_REQUEST получаю в поле [FILES] следующее:
[urlPreview] => Array
(
[default] => /bitrix/components/bitrix/im.messenger/show.file.php?fileId=129&preview=Y&fileName=rFlrdgU4t0o.jpg
[desktop] => /desktop_app/show.file.php?fileId=129&preview=Y&fileName=rFlrdgU4t0o.jpg
[mobile] => /mobile/ajax.php?mobile_action=im_files&fileType=show&fileId=129&preview=Y&fileName=rFlrdgU4t0o.jpg
)

[urlShow] => Array
(
[default] => /bitrix/components/bitrix/im.messenger/show.file.php?fileId=129&fileName=rFlrdgU4t0o.jpg
[desktop] => /desktop_app/show.file.php?fileId=129&fileName=rFlrdgU4t0o.jpg
[mobile] => /mobile/ajax.php?mobile_action=im_files&fileType=show&fileId=129&fileName=rFlrdgU4t0o.jpg
)

[urlDownload] => Array
(
[default] => /bitrix/components/bitrix/im.messenger/download.file.php?fileId=129
[desktop] => /desktop_app/download.file.php?fileId=129
[mobile] => /mobile/ajax.php?mobile_action=im_files&fileType=download&fileId=129&fileName=rFlrdgU4t0o.jpg
)

Вопрос: как мне скачать/получить файлы?

Пробовал по сcылке my.bitrix24.ru/bitrix/components/bitrix/im.messeng... - пишет "Недостаточно прав для доступа к файлу."
Пробовал авторизоваться через curl - то же самое

Кто что посоветует? Заранее благодарю

PS вообще Открытые линии битрикс24 мне показались несколько глючными . Я ошибаюсь?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 2
gromdron
@gromdron
Bitrix developer
Ну... попробуйте запросить для Бота права на Диск и при помощи метода dev.1c-bitrix.ru/rest_help/disk/file/disk_file_get.php
Скачать его.

По факту: в [urlDownload][default] в ссылке fileId это ID файла на диске и его можно получить.

Но это скорее хак, чем оф. возможность.
Ответ написан
unilog
@unilog Автор вопроса
начинающий программист
Спасибо.

Уточнил вопрос - приложение внешнее (серверное)поэтому библиотеку js использовать не могу чтобы реализовать следующее (пример)
BX24.callMethod(
"disk.file.get",
{
id: 10
},
function (result)
{
if (result.error())
console.error(result.error());
else
console.dir(result.data());
}
);

Попробовал через формат https://домен_Б24.bitrix24.{ru|com|de}/rest/имя_ме...

получил {"error":"ACCESS_DENIED","error_description":"Access denied!"}

Думаю что-то не понимаю. Если BX24 можно использовать во внешних приложениях, то как через js происходит авторизация? (если только реализовать в php "Авторизация запроса осуществляется автоматически на основе протокола OAuth 2.0")

Решение в комментарии
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы