如何在Chrome扩展中使用Microsoft账户对接Outlook调用相关API?
Chrome扩展对接Outlook登录的最简实现方案
Chrome 官方提供的chrome.identity API 可以直接完成Microsoft账户授权,无需额外搭建独立登录站点,整体实现流程如下:
1. Azure应用注册配置
首先完成Microsoft应用注册:
- 注册时平台选择「单页应用」,重定向URI填写
https://<你的扩展ID>.chromiumapp.org/,该地址为Chrome Identity API的固定回调格式 - 权限配置选择委托权限,添加你需要的Outlook相关权限,例如
Mail.Read(读取邮件)、Mail.Send(发送/转发邮件)等 - 注册完成后记录下你的客户端ID备用
2. 扩展manifest配置
以Manifest V3为例,添加必要权限配置:
{ "manifest_version": 3, "name": "你的扩展名称", "version": "1.0.0", "permissions": ["identity"], "host_permissions": ["https://graph.microsoft.com/*", "https://login.microsoftonline.com/*"] }
3. 授权获取访问令牌
直接调用chrome.identity.launchWebAuthFlow完成登录授权,示例代码如下:
// 替换为你自己的Azure客户端ID const CLIENT_ID = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; const REDIRECT_URI = `https://${chrome.runtime.id}.chromiumapp.org/`; // 拼接OAuth授权地址 const authEndpoint = new URL("https://login.microsoftonline.com/common/oauth2/v2.0/authorize"); authEndpoint.searchParams.set("client_id", CLIENT_ID); authEndpoint.searchParams.set("response_type", "token"); authEndpoint.searchParams.set("redirect_uri", REDIRECT_URI); // 权限列表按需添加,offline_access用于获取刷新令牌,实现长期免登录 authEndpoint.searchParams.set("scope", "https://graph.microsoft.com/Mail.Read https://graph.microsoft.com/Mail.Send offline_access"); authEndpoint.searchParams.set("prompt", "select_account"); // 唤起登录授权窗口 chrome.identity.launchWebAuthFlow({ url: authEndpoint.toString(), interactive: true }, (callbackUrl) => { if (chrome.runtime.lastError || !callbackUrl) { console.error("授权失败:", chrome.runtime.lastError); return; } // 从回调地址中提取访问令牌 const hashParams = new URLSearchParams(callbackUrl.split("#")[1]); const accessToken = hashParams.get("access_token"); const refreshToken = hashParams.get("refresh_token"); // 令牌存储到本地后即可调用Graph API操作邮件 });
4. 调用Outlook邮件API
拿到访问令牌后,在请求头中携带Authorization: Bearer ${accessToken}即可调用Microsoft Graph的邮件接口:
- 读取收件箱邮件:请求
GET https://graph.microsoft.com/v1.0/me/messages - 转发邮件:请求
POST https://graph.microsoft.com/v1.0/me/messages/{邮件ID}/forward
内容的提问来源于stack exchange,提问作者codingmaster398
相关产品推荐
相关产品推荐

