tutu-ru / lib-msgraph-sdk
PHP 微软 Graph SDK
Requires
- php: ^5.6 || ^7.0
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
- mikey179/vfsstream: ^1.2
- phpdocumentor/phpdocumentor: ^2.9
- phpunit/phpunit: ^5.5
README
从 PHP 连接示例开始
如果您想尝试 PHP 库,可以使用 PHP Connect 示例 快速开始。此示例将引导您开始一个 Laravel 项目,帮助您进行注册、身份验证以及向服务发起简单调用。
安装 SDK
您可以使用 Composer 安装 PHP SDK,运行 composer require microsoft/microsoft-graph
,或编辑您的 composer.json
文件
{
"require": {
"microsoft/microsoft-graph": "^1.5"
}
}
从微软 Graph 开始
注册您的应用程序
使用以下支持的认证门户之一通过微软 Graph API 注册您的应用程序
- 微软应用程序注册门户 (推荐):注册一个新的应用程序,使用 v2.0 认证端点进行认证。此端点认证个人(微软)和工作或学校(Azure Active Directory)账户。
- 微软 Azure Active Directory:在您的租户的 Active Directory 中注册一个新的应用程序,以支持您的租户或多个租户的工作或学校用户。
通过微软 Graph 服务进行认证
PHP 微软 Graph SDK 不包含任何默认的认证实现。thephpleague/oauth2-client
库将为您处理 OAuth2 流,并提供一个可用的令牌来查询 Graph。
要作为应用程序进行认证,您可以使用预先安装的 Guzzle HTTP 客户端,例如
$guzzle = new \GuzzleHttp\Client(); $url = 'https://login.microsoftonline.com/' . $tenantId . '/oauth2/token?api-version=1.0'; $token = json_decode($guzzle->post($url, [ 'form_params' => [ 'client_id' => $clientId, 'client_secret' => $clientSecret, 'resource' => 'https://graph.microsoft.com/', 'grant_type' => 'client_credentials', ], ])->getBody()->getContents()); $accessToken = $token->access_token;
有关如何在 Laravel 应用程序中使用 OAuth2 并使用 Graph 的集成示例,请参阅 PHP Connect 示例。
调用微软 Graph
以下是如何调用微软 Graph 的示例。
use Microsoft\Graph\Graph; use Microsoft\Graph\Model; class UsageExample { public function run() { $accessToken = 'xxx'; $graph = new Graph(); $graph->setAccessToken($accessToken); $user = $graph->createRequest("GET", "/me") ->setReturnType(Model\User::class) ->execute(); echo "Hello, I am $user->getGivenName() "; } }
开发
调试
您可以使用 Fiddler 或 Charles Proxy 等代理来调试请求和响应,例如
$graph->setProxyPort("localhost:8888");
然后,打开您的代理客户端以查看使用库发送的请求和响应。
当库没有返回您预期的结果时,这特别有用,以确定 API 或此 SDK 是否存在错误。因此,在尝试对您提交的问题进行分类时,可能会要求您提供此信息。
运行测试
运行
vendor/bin/phpunit --exclude-group functional
从基础目录。
功能测试集旨在针对测试账户运行。目前,测试不恢复账户状态。
文档和资源
问题
在存储库的 问题 选项卡中查看或记录问题。
贡献
请仔细阅读我们的 贡献 指南,以获取有关如何为此存储库做出贡献的建议。
版权和许可
版权(C)微软公司。保留所有权利。在MIT 许可证下授权。
此项目采用了微软开源行为准则。如需更多信息,请参阅行为准则常见问题解答或联系opencode@microsoft.com,如有任何额外问题或评论。