Laravel Microsoft Graph
Microsoft Graph 是一个强大的工具,允许开发人员访问和利用来自各种 Microsoft 服务的数据,包括 Office 365、Windows 和安全平台。
由开发人员 David Carr 创建的 Laravel Microsoft Graph 是一个提供与 Microsoft Graph REST API 无缝集成的软件包,使开发人员更容易与 Microsoft 的一些云服务进行交互。
主要特性
当前有以下一些特性:
- 简化身份验证:使用 Microsoft Graph 简化 OAuth 2.0 身份验证过程,允许以用户或租户管理员身份登录。
- 身份验证中间件:仅限经过身份验证的 M365 用户访问路由。
- 联系人管理:创建、读取、更新和删除用户的联系人。
- 邮件管理:访问收件箱,发送并管理邮件。
- 文件处理:轻松处理 OneDrive 文件和 SharePoint 文档。
安装及配置
首先,通过 Composer 安装包:
composer require dcblogdev/laravel-microsoft-graph
下一步,发布配置文件:
php artisan vendor:publish --provider="Dcblogdev\MsGraph\MsGraphServiceProvider" --tag="config"
该命令将创建配置文件 config/msgraph.php
。
然后使用如下凭证更新 .env 文件:
MSGRAPH_CLIENT_ID=your-client-id
MSGRAPH_SECRET_ID=your-client-secret
MSGRAPH_TENANT_ID=your-tenant-id
MSGRAPH_OAUTH_URL=https://yourdomain.com/msgraph/oauth
MSGRAPH_LANDING_URL=https://yourdomain.com/msgraph
然后发布迁移:
php artisan vendor:publish --provider="Dcblogdev\MsGraph\MsGraphServiceProvider" --tag="migrations"
注意:如果将 Microsoft Graph 用作身份验证服务,则还需要添加一个监听器:
php artisan vendor:publish --provider="Dcblogdev\MsGraph\MsGraphServiceProvider" --tag="Listeners"
这个命令将创建 app/Listeners/NewMicrosoft365SignInListener.php
,然后你将其添加到 app/Providers/AppServiceProvider
:
public function boot(): void
{
Event::listen(
NewMicrosoft365SignInEvent::class,
[NewMicrosoft365SignInListener::class, 'handle']
);
}
示例
1. 认证用户
use Dcblogdev\MsGraph\MsGraph;
// Redirect user to Microsoft login page
return (new MsGraph())->connect();
// Handle callback after login
$msGraph = new MsGraph();
$user = $msGraph->get('/me');
return $user;
2. 发送邮件
use Dcblogdev\MsGraph\MsGraph;
$msGraph = new MsGraph();
$msGraph->emails()
->to(['test@example.com'])
->subject('Hello from Laravel News')
->body('This is a test email from Laravel News.')
->send();
3. 列出 OneDrive 文件
use Dcblogdev\MsGraph\MsGraph;
$msGraph = new MsGraph();
$files = $msGraph->files()->getFiles('/path/to/folder', 'me');
# The second parameter determines whether to use your one drive or a Groups
# $files = $msGraph->files()->getFiles('/path/to/folder', "groups/$groupId");
return $files;
如果你在 M365 生态系统中使用 Laravel,那么 Laravel Microsoft Graph 包可能是你不可或缺的工具。其简单的 API 集成和用户友好的方法使其成为需要访问 Microsoft Graph 功能的 Laravel 项目的绝佳选择。
Github 源码:https://github.com/dcblogdev/laravel-microsoft-graph。