Перейти к основному содержанию

Dropfiles: OneDrive & OneDrive for Business интеграция

1. Приложение Microsoft OneDrive

OneDrive Personal и Business интегрированы с основным пакетом Dropfiles.
Сначала вам понадобится приложение Microsoft Azure, чтобы подключить ваш сайт к аккаунту OneDrive Personal или Business. Перейдите к: https://portal.azure.com/, войдите в систему и нажмите на Новую регистрацию кнопку.

 

add-microsoft-app

 

На форме регистрации приложения укажите название приложения и скопируйте URL вашего сайта в URL перенаправления поле и нажмите кнопку Зарегистрировать кнопку.

Если вы используете учетную запись OneDrive Business, вы можете выбрать опцию: "Учетные записи в любом организационном каталоге (любой каталог Azure AD — многопользовательский)".

 

копировать-URL

 

Примечание: сервер Redirect URIs должен быть https://.

Итак, вы почти закончили, отсюда у вас есть ID приложения (Client ID), только пароль отсутствует. В левом меню перейдите к Сертификаты & секреты, затем нажмите на Новый клиентский секрет кнопку, чтобы создать его. После этого заполните Описание и установите Срок действия для него.

 

new-password-1

 

Пароль (Client Secret) генерируется сразу после нажатия на Добавить кнопку, затем не забудьте сделать копию. Убедитесь, что вы копируете ключ из Значение столбца.

 

password-generate

 

2. Вход в OneDrive Personal и Business

Автоматический режим

С этого момента вы можете сэкономить много времени, подключаясь к серверу OneDrive. Во-первых, чтобы использовать эту функцию, вам нужно подключить ваш аккаунт Joomunited в Dropfiles Настройки > Live Updates вкладка, пожалуйста, нажмите на Связать мой аккаунт Joomunited кнопку и войдите, если вы ещё не подключены.

 

live-updates-dropfiles

 

Затем перейдите к Облачное соединение > OneDrive Personal/Business вкладку и просто нажмите на Подключить OneDrive кнопку для OneDrive Personal или Подключить OneDrive Business кнопку для OneDrive Business в правом углу.

 

автоматический-onedrive-dropfiles

 

Затем выполните следующие шаги, чтобы завершить подключение.

 

авто-onedrive-подключённый-dropfiles

 

Ручной режим

С учётными данными из предыдущего шага, пожалуйста, вернитесь к администратору Joomla и нажмите на меню Dropfiles > Опции > Вкладка облачное соединение > OneDrive Business настройки раздел. Из‑за технических изменений в OneDrive, ручной режим больше не поддерживается для личных аккаунтов. Вставьте ваш

  • ID клиента приложения
  • Секретное значение

 

credentials-copy

 

Затем Сохранить конфигурацию и нажмите на кнопку «Подключить OneDrive Business» если вы используете бизнес‑аккаунт.

 

connect-onedrive

 

Вам потребуется подтвердить разрешение доступа для приложения, просто нажмите Да.

 

авторизация‑приложения

 

Подключение должно быть успешным! ☺

 

подключено-onedrive

 

С OneDrive Business, после успешного подключения, вы увидите "Отслеживать изменения" кнопку. Вы должны включить её, если хотите немедленно синхронизировать файлы и категории из OneDrive Business в Dropfiles.

 

кнопка-отслеживание-изменений-onedrive-business

 

Затем вы можете добавлять файлы, категории и подкатегории в OneDrive Personal или Business в Dropfiles, всё будет синхронизировано!

 

new-onedrive

 

3. Как это работает? Что я могу сделать с OneDrive Personal и Business?

Как это работает? 

Dropfiles создаст корневую папку в вашем OneDrive Personal или Business с именем сайта. OneDrive Personal или Business может синхронизировать папки/подпапки и файлы в вашем интерфейсе Dropfiles, и то же самое возможно в обратном направлении (из Dropfiles в OneDrive).

 

 
onedrive-web
 

Какие направления синхронизации?

Это работает в обоих направлениях! Вы можете добавить файл из OneDrive Personal или Business и увидеть его в Dropfiles, либо добавить файл в Dropfiles и увидеть его в OneDrive Personal или Business. Это также означает, что вы можете управлять файлами Dropfiles с вашего компьютера, используя программное обеспечение синхронизации OneDrive. Это безумие! Да, мы знаем ☺

 

dropfiles-onedrive

 

Duplicate entry '49263e4176ff53f5ff1efff72d6df4fb-ru' for key 'bk24_linguise_urls.hash_translation' (500 Whoops, looks like something went wrong.)

mysqli_sql_exception

HTTP 500 Whoops, looks like something went wrong.

Duplicate entry '49263e4176ff53f5ff1efff72d6df4fb-ru' for key 'bk24_linguise_urls.hash_translation'

Exception

mysqli_sql_exception

Show exception properties
mysqli_sql_exception {#896
  #sqlstate: "23000"
}
  1. foreach ($urls as $translation => $source) {
  2. $elements[] = '("'.mysqli_real_escape_string($this->_database, Request::getInstance()->getLanguage()).'", "'.mysqli_real_escape_string($this->_database, $source).'", "'.mysqli_real_escape_string($this->_database, $translation).'", "'.md5($source).'", "'.md5($translation).'")';
  3. }
  4. $query .= implode(',', $elements);
  5. $query .= ' ON DUPLICATE KEY UPDATE source=VALUES(source), translation=VALUES(translation), hash_source=VALUES(hash_source), hash_translation=VALUES(hash_translation)';
  6. $this->_database->query($query);
  7. }
  8. public function removeUrls($urls)
  9. {
  10. $query = 'DELETE FROM '.mysqli_real_escape_string($this->_database, $this->_database_table_urls).' WHERE (hash_source) IN ';
  1. foreach ($urls as $translation => $source) {
  2. $elements[] = '("'.mysqli_real_escape_string($this->_database, Request::getInstance()->getLanguage()).'", "'.mysqli_real_escape_string($this->_database, $source).'", "'.mysqli_real_escape_string($this->_database, $translation).'", "'.md5($source).'", "'.md5($translation).'")';
  3. }
  4. $query .= implode(',', $elements);
  5. $query .= ' ON DUPLICATE KEY UPDATE source=VALUES(source), translation=VALUES(translation), hash_source=VALUES(hash_source), hash_translation=VALUES(hash_translation)';
  6. $this->_database->query($query);
  7. }
  8. public function removeUrls($urls)
  9. {
  10. $query = 'DELETE FROM '.mysqli_real_escape_string($this->_database, $this->_database_table_urls).' WHERE (hash_source) IN ';
  1. public function saveUrls($urls) {
  2. if (empty($urls)) {
  3. return;
  4. }
  5. return $this->_database->saveUrls($urls);
  6. }
  7. public function removeUrls($urls) {
  8. if (empty($urls)) {
  9. return;
  1. if (isset($result->url_translations)) {
  2. Defer::getInstance()->defer(function() use ($result) {
  3. $new_urls = $result->url_translations;
  4. $new_urls = get_object_vars($new_urls);
  5. Database::getInstance()->saveUrls((array)$new_urls);
  6. });
  7. }
  8. if (isset($result->urls_untranslated)) {
  9. Defer::getInstance()->defer(function() use ($result) {
Translation->Linguise\Script\Core\{closure}()
  1. }
  2. public function finalize()
  3. {
  4. foreach ($this->_actions as $action) {
  5. call_user_func($action['function'], $action['args']);
  6. }
  7. }
  8. }
  1. Helper::prepareDataDir();
  2. // Finalize defer actions on shutdown
  3. // @codeCoverageIgnoreStart
  4. register_shutdown_function(function() {
  5. Defer::getInstance()->finalize();
  6. Database::getInstance()->close();
  7. });
  8. // @codeCoverageIgnoreEnd
  9. }
Processor->Linguise\Script\Core\{closure}()

Stack Trace

mysqli_sql_exception
mysqli_sql_exception:
Duplicate entry '49263e4176ff53f5ff1efff72d6df4fb-ru' for key 'bk24_linguise_urls.hash_translation'

  at /var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Databases/Mysql.php:170
  at mysqli->query()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Databases/Mysql.php:170)
  at Linguise\Script\Core\Databases\Mysql->saveUrls()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Database.php:232)
  at Linguise\Script\Core\Database->saveUrls()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Translation.php:119)
  at Linguise\Script\Core\Translation->Linguise\Script\Core\{closure}()
  at call_user_func()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Defer.php:42)
  at Linguise\Script\Core\Defer->finalize()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Processor.php:31)
  at Linguise\Script\Core\Processor->Linguise\Script\Core\{closure}()