microsoft / microsoft-graph
Microsoft Graph SDK for PHP
Requires
- php: ^8.0 || ^7.4
- microsoft/microsoft-graph-core: ^2.1.1
Requires (Dev)
- phpstan/phpstan: ^0.12.90 || ^1.0.0
- phpunit/phpunit: ^8.0 || ^9.0
- dev-main
- v2.14.0
- v2.13.0
- v2.12.0
- v2.11.0
- 2.10.0
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.1
- 2.0.0
- 2.0.0-RC27
- 2.0.0-RC26
- 2.0.0-RC25
- 2.0.0-RC24
- 2.0.0-RC23
- 2.0.0-RC22
- 2.0.0-RC21
- 2.0.0-RC20
- 2.0.0-RC19
- 2.0.0-RC18
- 2.0.0-RC17
- 2.0.0-RC16
- 2.0.0-RC15
- 2.0.0-RC14
- 2.0.0-RC13
- 2.0.0-RC12
- 2.0.0-RC11
- 2.0.0-RC10
- 2.0.0-RC9
- 2.0.0-RC8
- 2.0.0-RC7
- 2.0.0-RC6
- 2.0.0-RC5
- 2.0.0-RC4
- 2.0.0-RC3
- 2.0.0-RC2
- 2.0.0-RC1
- 1.110.0
- 1.109.2
- 1.109.1
- 1.109.0
- 1.108.0
- 1.107.0
- 1.106.0
- 1.105.0
- 1.104.0
- 1.103.0
- 1.102.0
- 1.101.0
- 1.100.0
- 1.99.0
- 1.98.0
- 1.97.0
- 1.96.0
- 1.95.0
- 1.94.0
- 1.93.0
- 1.92.0
- 1.91.0
- 1.90.0
- 1.89.0
- 1.88.0
- 1.87.0
- 1.86.0
- 1.85.0
- 1.84.0
- 1.83.0
- 1.82.0
- 1.81.0
- 1.80.0
- 1.79.0
- 1.78.0
- 1.77.0
- 1.76.0
- 1.75.0
- 1.74.0
- 1.73.0
- 1.72.0
- 1.71.0
- 1.70.0
- 1.69.0
- 1.68.0
- 1.67.0
- 1.66.0
- 1.65.0
- 1.64.0
- 1.63.0
- 1.62.0
- 1.61.0
- 1.60.0
- 1.59.0
- 1.58.0
- 1.57.1
- 1.57.0
- 1.56.0
- 1.55.0
- 1.54.0
- 1.53.0
- 1.52.0
- 1.51.0
- 1.50.0
- 1.49.0
- 1.48.0
- 1.47.0
- 1.46.0
- 1.45.0
- 1.44.0
- 1.43.0
- 1.42.0
- 1.41.0
- 1.40.0
- 1.39.0
- 1.38.0
- 1.37.0
- 1.36.0
- 1.35.1
- 1.35.0
- 1.34.0
- 1.33.0
- 1.32.0
- 1.31.0
- 1.30.1
- 1.30.0
- 1.29.0
- 1.27.0
- 1.26.0
- 1.25.0
- 1.24.0
- 1.23.0
- 1.22.0
- 1.21.0
- 1.20.0
- 1.19.0
- 1.18.0
- 1.17.0
- 1.16.0
- 1.15.0
- 1.14.0
- 1.13.0
- 1.12.0
- 1.11.0
- 1.10.0
- 1.9.0
- 1.8.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.0
- 1.1.1
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.1.1
- 0.1.0
- dev-release-please--branches--main--components--microsoft/microsoft-graph
- dev-kiota/v1.0/pipelinebuild/163754
- dev-kiota/v1.0/pipelinebuild/163658
- dev-kiota/v1.0/pipelinebuild/160559
- dev-kiota/v1.0/pipelinebuild/160542
- dev-kiota/v1.0/pipelinebuild/160533
- dev-kiota/v1.0/pipelinebuild/150858
- dev-support/1.x
This package is auto-updated.
Last update: 2024-09-19 07:20:00 UTC
README
安装SDK
您可以通过编辑composer.json
文件,使用Composer安装PHP SDK
{ "require": { // x-release-please-start-version "microsoft/microsoft-graph": "^2.14.0" // x-release-please-end } }
开始使用Microsoft Graph
注册您的应用程序
使用您租户的Active Directory中的Microsoft Azure Active Directory注册您的应用程序以使用Microsoft Graph API,以支持您的租户或多个租户的工作或学校用户。
创建Token请求上下文
Token请求上下文包含用于验证请求的凭据。SDK支持与OAuth 2.0流程相一致的各种上下文:client_credentials
、authorization_code
和on_behalf_of
,支持基于密钥和基于证书的客户端身份验证。
在底层,Token请求上下文被传递给身份验证提供者,它获取、缓存和刷新访问令牌,确保所有请求都针对Microsoft身份平台进行身份验证。
以下示例创建了一个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身份登录页面,以获取传递到AuthorizationCodeContext
中的authorization_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客户端配置的更多信息,请参阅更多示例
使用v1.0端点和模型调用Microsoft Graph
以下示例显示了如何从Microsoft Graph获取用户
<?php use Microsoft\Graph\GraphServiceClient; use Microsoft\Kiota\Abstractions\ApiException; use Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext; $tokenRequestContext = new ClientCredentialContext( 'tenantId', 'clientId', 'clientSecret' ); $graphServiceClient = new GraphServiceClient($tokenRequestContext); try { $user = $graphServiceClient->users()->byUserId('[userPrincipalName]')->get()->wait(); echo "Hello, I am {$user->getGivenName()}"; } catch (ApiException $ex) { echo $ex->getError()->getMessage(); }
注意:SDK默认设计为异步请求。操作(
get()
、post()
...)返回一个Promise。要获取结果,请在操作后调用wait()
。示例:->get()->wait();
请注意,调用me()
需要一个已登录的用户,因此需要委托权限(使用authorization_code
流获取)
<?php use Microsoft\Graph\GraphServiceClient; use Microsoft\Kiota\Abstractions\ApiException; use Microsoft\Kiota\Authentication\Oauth\AuthorizationCodeContext; $tokenRequestContext = new AuthorizationCodeContext( 'tenantId', 'clientId', 'clientSecret', 'authCode', 'redirectUri' ); $scopes = ['User.Read']; $graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes); try { $user = $graphServiceClient->me()->get()->wait(); echo "Hello, I am {$user->getGivenName()}"; } catch (ApiException $ex) { echo $ex->getError()->getMessage(); }
文档和资源
升级
有关重大升级期间引入的破坏性更改、错误修复和新功能等详细信息,请查看我们的升级指南
开发
运行测试
运行
vendor/bin/phpunit
从基本目录。
问题
在仓库的问题标签页中查看或记录问题。
贡献
请仔细阅读我们的贡献指南,了解如何为这个仓库做出贡献。
版权和许可
版权(c)微软公司。版权所有。在MIT许可协议下许可。
本项目采用了微软开源行为准则。更多信息请参阅行为准则FAQ,或通过[email protected]联系以获取任何额外问题或意见。