tutu-ru/lib-msgraph-sdk

PHP 微软 Graph SDK

1.8.0 2019-02-12 10:38 UTC

README

Build Status Latest Stable Version

从 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");

然后,打开您的代理客户端以查看使用库发送的请求和响应。

Screenshot of Fiddler /me/sendmail request and response

当库没有返回您预期的结果时,这特别有用,以确定 API 或此 SDK 是否存在错误。因此,在尝试对您提交的问题进行分类时,可能会要求您提供此信息。

运行测试

运行

vendor/bin/phpunit --exclude-group functional

从基础目录。

功能测试集旨在针对测试账户运行。目前,测试不恢复账户状态。

文档和资源

问题

在存储库的 问题 选项卡中查看或记录问题。

贡献

请仔细阅读我们的 贡献 指南,以获取有关如何为此存储库做出贡献的建议。

版权和许可

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

此项目采用了微软开源行为准则。如需更多信息,请参阅行为准则常见问题解答或联系opencode@microsoft.com,如有任何额外问题或评论。