microsoft / microsoft-graph-core
Microsoft Graph Core SDK for PHP
Requires
- php: ^8.0 || ^7.4
- ext-json: *
- microsoft/kiota-authentication-phpleague: ^1.1.0
- microsoft/kiota-http-guzzle: ^1.3.0
- microsoft/kiota-serialization-form: ^1.1.0
- microsoft/kiota-serialization-json: ^1.2.0
- microsoft/kiota-serialization-multipart: ^1.0.0
- microsoft/kiota-serialization-text: ^1.1.0
Requires (Dev)
- mikey179/vfsstream: ^1.2
- phpstan/phpstan: ^0.12.90 || ^1.0.0
- phpunit/phpunit: ^9.0
README
安装核心库
要使用 Composer 安装 microsoft-graph-core
库,请运行 composer require microsoft/microsoft-graph-core
,或编辑您的 composer.json
文件
{
"require": {
// x-release-please-start-version
"microsoft/microsoft-graph-core": "^2.2.0"
// x-release-please-end
}
}
开始使用 Microsoft Graph
1. 注册您的应用程序
通过遵循 使用 Microsoft Identity 平台注册应用程序 中的步骤来注册应用程序以使用 Microsoft Graph API。
2. 通过 Microsoft Graph 服务进行身份验证
PHP 的 Microsoft Graph Core SDK 不包括任何默认的身份验证实现。thephpleague/oauth2-client
库将为您处理 OAuth2 流并提供一个可用的令牌来查询 Graph。
有关以应用程序身份进行身份验证的信息,请参阅 此指南 以配置正确的权限。
您可以使用预安装在本库中的 Guzzle HTTP 客户端 获取访问令牌,如下所示
$tokenRequestContext = new ClientCredentialContext( 'tenantId', 'clientId', 'clientSecret' ); // requests using https://graph.microsoft.com/.default scopes by default $tokenProvider = new GraphPhpLeagueAccessTokenProvider($tokenRequestContext); $token = $tokenProvider->getAuthorizationTokenAsync(GraphConstants::REST_ENDPOINT)->wait();
3. 创建 Guzzle HTTP 客户端对象
您可以使用我们的 GraphClientFactory
创建一个预先配置以用于 Graph API 的 Guzzle HTTP 客户端对象。该 GraphClientFactory
设置一些 Guzzle 配置默认值,例如连接和请求超时,以及 base_uri
为您首选的 国家云端点。
在不久的将来,GraphClientFactory
将提供一些默认的中间件来与 Graph API 一起使用,例如重试处理程序。
use Microsoft\Graph\Core\Core\Http\GraphClientFactory; $guzzleConfig = [ // your preferred guzzle config ]; $httpClient = GraphClientFactory::setClientConfig($guzzleConfig)::create();
4. 使用 v1.0 端点调用 Microsoft Graph
以下是一个示例,展示了如何调用 Microsoft Graph。
use Microsoft\Graph\Core\Core\Http\GraphClientFactory; class UsageExample { public function run() { $accessToken = 'xxx'; $config = [ 'headers' => [ 'Authorization' => 'Bearer '.$accessToken ] ]; $httpClient = GraphClientFactory::setClientConfig($config)::create(); $response = $httpClient->get("/v1.0/me"); $currentUser = json_decode($response->getBody()); echo "Hello, I am {$currentUser['givenName']}"; } }
我们提供了 Microsoft Graph 模型,以便于序列化和反序列化。
如果您想利用我们提供的模型,请参阅 Microsoft Graph PHP SDK 以及针对测试模型 - Microsoft Graph Beta PHP SDK。
文档和资源
开发
运行测试
运行
vendor/bin/phpunit
从基本目录开始。
在 Windows 上调试测试
此 SDK 具有附加到 VS Code 的调试器的 XDebug 运行配置,以便您可以在测试中进行调试。
- 将 PHP 调试 扩展安装到 Visual Studio Code。
- 从此存储库的根目录,使用 PowerShell,运行
php .\tests\GetPhpInfo.php | clip
从存储库根目录。这将把 PHP 配置信息复制到剪贴板,我们将在下一步中使用。 - 将您的剪贴板粘贴到 XDebug 安装向导 并选择 分析我的 phpinfo() 输出。
- 按照安装 XDebug 产生的说明进行操作。请注意,
/ext
目录位于您的 PHP 目录中。 - 将以下信息添加到您的 php.ini 文件中
[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
现在您可以在测试中设置 Visual Studio Code 断点。尝试这样做
- 在 .\tests\Http\GraphClientFactoryTest.php 中的
testCreateWithConfigCreatesClient
上添加断点。 - 在 VS Code 中运行 监听 XDebug 配置。
- 在PowerShell终端中运行
.\vendor\bin\phpunit --filter testCreateWithConfigCreatesClient
来运行测试并设置断点。
问题
在仓库的问题标签页中查看或记录问题。
贡献
请仔细阅读我们的贡献指南,了解如何为此仓库做出贡献。
版权和许可
版权所有(C)微软公司。保留所有权利。在MIT许可下授权。
本项目采用微软开源行为准则。更多信息请参阅行为准则常见问题解答或联系[email protected]以获得任何额外的问题或评论。