Я долгое время пытался загрузить данные в свой OneDrive с помощью PHP. Я уже много читал об этом, а также нашел проект на github.
Я попробовал этот урок, но не могу продвинуться дальше. https://www.webshark.ee/how-to-upload-files-from-server-to-microsoft-onedrive-using-rest-api-and-php/
Я создаю приложение в Microsoft Azure, чтобы получить идентификатор клиента и многое другое. Я скачал пакет с помощью композитора.
composer requires microsoft/microsoft-graph
Затем я создал свой сценарий на основе первого примера в руководстве. Чего я не знаю, так это как интегрировать поставщика из композитора
мой сценарий выглядит так:
$tenantId = 'your-id-number';
$clientId = 'your-client-id-number';
$clientSecret = 'your-client-secret-number';
$url = 'https://login.microsoftonline.com/' . $tenantId . '/oauth2/token';
$user_token = json_decode($guzzle->post($url, [
'form_params' => [
'client_id' => $clientId,
'client_secret' => $clientSecret,
'resource' => 'https://graph.microsoft.com/',
'grant_type' => 'password',
'username' => '[email protected]',
'password' => 'your-password'
],
])->getBody()->getContents());
$user_accessToken = $user_token->access_token;
$graph = new Graph();
$graph->setAccessToken($user_accessToken);
?>
В настоящее время я получаю сообщение об ошибке только при запуске первого скрипта.
Warning: Undefined variable $guzzle in C:\xampp_neu\htdocs\test1\src\test.php on line 6






Guzzle — это HTTP-клиент для PHP, и это предупреждение сообщает вам, что клиент Guzzle не определен. Есть несколько шагов, чтобы исправить это.
Сначала установите его через Composer, выполнив следующую команду:
composer require guzzlehttp/guzzle
Во-вторых, чтобы использовать пакеты Composer в вашем PHP-скрипте, вам необходимо включить автозагрузчик Composer в начало файла. Это загрузит все пакеты, которые вы используете в текущем скрипте, пропуская при этом все установленные пакеты, которые не будут использоваться:
<?php
require_once 'vendor/autoload.php';
И наконец, вам нужно будет создать экземпляр клиента Guzzle перед его первым использованием:
$guzzle = new GuzzleHttp\Client();
Не имеет отношения к вашему вопросу, но вы заметите дополнительную ошибку, если не используете полное пространство имен для класса Graph():
$graph = new Microsoft\Graph\Graph();
окей, я попробовал. теперь запрос работает, но я получаю неверный запрос на аутентификацию.
Рад слышать, что вы добиваетесь прогресса! Похоже, что учебнику, который вы используете, уже несколько лет, поэтому я бы вместо этого рассмотрел официальное руководство по PHP/Graph от Microsoft. Если у вас возникли проблемы, на которые руководство не может ответить, вы можете задать здесь новый вопрос.
чего я не знаю: как я могу получить URL-адрес перенаправления. на моем лазурном портале пусто
Вы уверены, что эта проблема каким-либо образом связана с Charts или Composer? Мне кажется очевидным, что скрипт не запускается, поскольку вы нигде не указали
$guzzle(как говорилось в сообщении об ошибке)