microsoft/microsoft-graph-beta

Microsoft Graph Beta SDK for PHP


README

Build Status Latest Stable Version Total Downloads PHP Version Require

安装 SDK

您可以通过编辑您的 composer.json 文件使用 Composer 安装 Beta PHP SDK

{
    "require": {
         // x-release-please-start-version
        "microsoft/microsoft-graph-beta": "^2.16.0"
         // x-release-please-end
    }
}

开始使用 Microsoft Graph

注册您的应用程序

使用您租户的 Active Directory 中的 Microsoft Azure Active Directory 注册您的应用程序以使用 Microsoft Graph API,以支持您的租户或多个租户的工作或学校用户。

创建 Token 请求上下文

Token 请求上下文包含用于验证请求的凭据。SDK 支持与 OAuth 2.0 流相匹配的各种上下文:client_credentialsauthorization_codeon_behalf_of,并支持基于秘密和基于证书的客户端身份验证。

Token 请求上下文传递给认证提供程序,该程序获取、缓存和刷新访问令牌,确保所有请求都针对 Microsoft Identity 平台进行身份验证。

以下示例创建了一个 获取用户访问权限而不需要用户 的 TokenRequestContext

<?php
use Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext;
use Microsoft\Graph\Core\Authentication\GraphPhpLeagueAuthenticationProvider;

$tokenRequestContext = new ClientCredentialContext(
    'tenantId',
    'clientId',
    'clientSecret'
);

代表用户获取访问权限

<?php
use Microsoft\Kiota\Authentication\Oauth\AuthorizationCodeContext;
use Microsoft\Graph\Core\Authentication\GraphPhpLeagueAuthenticationProvider;

$tokenRequestContext = new AuthorizationCodeContext(
    'tenantId',
    'clientId',
    'clientSecret',
    'authCode',
    'redirectUri'
);

请注意,您的应用程序需要处理将用户重定向到 Microsoft Identity 登录页面以获取传递到 AuthorizationCodeContextauthorization_code。有关 authorization_code 授予流的更多信息,请参阅 此处。要跨会话中的多个请求保持用户登录,请参阅关于 访问令牌管理 的部分。

初始化 GraphServiceClient

使用 Token 请求上下文和可选的作用域,可以初始化 GraphServiceClient

use Microsoft\Graph\GraphServiceClient;

// Defaults to using https://graph.microsoft.com/.default scopes
$graphServiceClient = new GraphServiceClient($tokenRequestContext);
// With specific scopes
$scopes = ['User.Read', 'Mail.ReadWrite'];
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);

有关如何使用已获取的访问令牌初始化 GraphServiceClient 或检索 SDK 代表您获取的访问令牌的说明,请参阅 访问令牌管理 部分。

有关 Graph 客户端配置的更多信息,请参阅 更多示例

使用 Beta 端点和模型调用 Microsoft Graph

以下示例展示了如何从 Microsoft Graph 中获取用户

use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Kiota\Abstractions\ApiException;
use Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext;

$tokenRequestContext = new ClientCredentialContext(
    'tenantId',
    'clientId',
    'clientSecret'
);
$betaGraphServiceClient = new GraphServiceClient($tokenRequestContext);

try {
    $user = $betaGraphServiceClient->users()->byUserId('[userPrincipalName]')->get()->wait();
    echo "Hello, I am {$user->getGivenName()}";

} catch (ApiException $ex) {
    echo $ex->getError()->getMessage();
}

请注意,调用 me() 需要 已登录用户,因此需要委托权限(使用 authorization_code 流获取)

use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Kiota\Abstractions\ApiException;
use Microsoft\Kiota\Authentication\Oauth\AuthorizationCodeContext;

$tokenRequestContext = new AuthorizationCodeContext(
    'tenantId',
    'clientId',
    'clientSecret',
    'authCode',
    'redirectUri'
);
$scopes = ['User.Read'];
$betaGraphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);

try {
    $user = $betaGraphServiceClient->me()->get()->wait();
    echo "Hello, I am {$user->getGivenName()}";
} catch (ApiException $ex) {
    echo $ex->getError()->getMessage();
}

文档和资源

升级

有关重大升级期间引入的破坏性更改、错误修复和新功能的详细信息,请参阅我们的 升级指南

开发

运行测试

从基本目录运行

vendor/bin/phpunit

.

问题

在存储库的 问题 标签页上查看或记录问题。

贡献

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

版权和许可

版权(c)微软公司。版权所有。在MIT许可证下授权。

本项目采用了微软开源行为准则。更多信息请参阅行为准则FAQ或联系[email protected]提出任何额外的问题或评论。