microsoft/microsoft-graph-core

Microsoft Graph Core SDK for PHP

v2.2.0 2024-06-24 15:18 UTC

README

Latest Stable Version Coverage

安装核心库

要使用 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 运行配置,以便您可以在测试中进行调试。

  1. PHP 调试 扩展安装到 Visual Studio Code。
  2. 从此存储库的根目录,使用 PowerShell,运行 php .\tests\GetPhpInfo.php | clip 从存储库根目录。这将把 PHP 配置信息复制到剪贴板,我们将在下一步中使用。
  3. 将您的剪贴板粘贴到 XDebug 安装向导 并选择 分析我的 phpinfo() 输出
  4. 按照安装 XDebug 产生的说明进行操作。请注意,/ext 目录位于您的 PHP 目录中。
  5. 将以下信息添加到您的 php.ini 文件中
[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

现在您可以在测试中设置 Visual Studio Code 断点。尝试这样做

  1. .\tests\Http\GraphClientFactoryTest.php 中的 testCreateWithConfigCreatesClient 上添加断点。
  2. 在 VS Code 中运行 监听 XDebug 配置。
  3. 在PowerShell终端中运行.\vendor\bin\phpunit --filter testCreateWithConfigCreatesClient来运行测试并设置断点。

问题

在仓库的问题标签页中查看或记录问题。

贡献

请仔细阅读我们的贡献指南,了解如何为此仓库做出贡献。

版权和许可

版权所有(C)微软公司。保留所有权利。在MIT许可下授权。

本项目采用微软开源行为准则。更多信息请参阅行为准则常见问题解答或联系[email protected]以获得任何额外的问题或评论。