Logo

Logo

Microsoft Graph (2) API Call

Xzavier Aaron
Xzavier Aaron 2024年12月25日
97 阅读 0 评论 约 2844 字 阅读约 6 分钟

  《Windows Azure Platform 系列文章目录

  

  调用Microsoft Graph API,分为四个主要步骤:

  一.注册应用 (App Registrations)

  二.登陆并获得Token

  三.授权

  四.Call API

  

  一.注册应用 (App Registrations)

  我们可以手动注册应用,然后获得:

  - Application (Client) ID

  - Directory (Tenant) ID

  - Client secrets

  有关这部分的详细内容,请参考:Windows Azure AD (7) 创建配置应用程序和服务主体 (Application and Service Principal)

 

  二.登陆并获得Token

  Microsoft Graph登陆分为两种方式:

  1.代表用户获取访问权限

  https://docs.microsoft.com/zh-cn/graph/auth-v2-user?context=graph%2Fapi%2F1.0&view=graph-rest-1.0 

  这种场景比较适合应用程序注册访问。比如我们开发的第三方APP应用程序,当进行登陆的时候,会通过Web页面进行登陆确认:

  

  2.无用户访问

  https://docs.microsoft.com/en-us/graph/auth-v2-service?context=graph%2Fapi%2F1.0&view=graph-rest-1.0

  这种场景比较适合于后台服务进行调用,不存在用户登陆。比如我们自己开发的一个Windows Service程序,24*7的一直在运行。

  本文主要介绍的是无用户访问

 

  我们打开Postman,设置环境变量名称为:AzureChinaGraphConfig

  设置三个环境变量和参数值

  -tenant_id

  -app_id

  -app_secret

  

 

  然后在Postman中,Add New Request,设置一下内容:

  -名称设置为Get Graph Token

  -方法为POST,URL为:https://login.chinacloudapi.cn/{{tenant_id}}/oauth2/v2.0/token

  -设置body

参数条件说明
tenant必须我们在第一章注册应用中,设置的租户id,我们这里设置读取环境变量{{tenant_id}}
client_id必须我们在第一章注册应用中,设置的client_id,我们这里设置读取环境变量{{app_id}}
scope必须设置为:https://microsoftgraph.chinacloudapi.cn/.default
client_secret必须我们在第一章注册应用中,设置的client_secret,我们这里设置读取环境变量{{app_secret}}
grant_type必须设置为:client_credentials

 

  

 

  点击上图的Send后,获得的JWT如下图:

  

 

  我们把上图的access_token拿到后,可以在网站:https://jwt.ms/ 进行验证:

  

 

 

  三.授权Permission

  我们在访问Graph API的时候,还需要对API CALL进行授权。

  比如我们访问User API,https://docs.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http

  里面需要对API设置Permissions (授权),授权内容如下:

Permission typePermissions (from least to most privileged)
Delegated (work or school account)User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All, Directory.AccessAsUser.All
Delegated (personal Microsoft account)User.Read, User.ReadWrite
ApplicationUser.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All

  

  那如何进行授权呢?我们登陆到Azure China Porta:https://portal.azure.cn/

  点击下图,我们在步骤1中创建的application。

  

 

  在API Permissions里面,设置Add a Permission。如下图:

  

 

  先点击Microsoft Graph

  

 

  在弹出的窗口中,根据API需要的permission,设置Delegated Permission和Application Permissions

  

  

  设置完毕后,我们还要点击Grant admin consent for XXX

  

 

 

  四.Call API

  当设置完第三步的授权Permission后,我们就可以call API了

  例如我们要Get user:https://docs.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http

  需要call的URL是:https://microsoftgraph.chinacloudapi.cn/v1.0/users/

  HTTP Request: Get

 

  Request Headers

HeaderValue说明
AuthorizationBearer {token}我们在步骤2中获得的Token
Content-Typeapplication/json 

  CALL API后的结果:

  

 

查看完整代码

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
部分文章可能存在转载,如果涉及到侵权,请联系删除文章。

探索AIGC相关的精彩内容,共 15 篇文章

Azure AI 服务之语音识别

简介 Azure AI 服务中的语音识别 API 是微软提供的一项先进技术,旨在帮助开发者轻松实现语 ... Microsoft Graph (2) API Call

2026-02-17 · Xzavier Aaron
MCP | 一文详解什么是 MCP以及 MCP 可以做什么

一、什么是 MCP MCP(Model Context Protocol)是一个专为大型语言模型(L ... Microsoft Graph (2) API Call

2026-02-14 · Shen, Luke
你的工作流程,值得一个“全自动数字分身”:录制、截图、成文,一气呵成

一、一句话认识 TestFlow Recorder 在数字化工作环境中,如何准确记录操作步骤并生成清 ... Microsoft Graph (2) API Call

2026-02-14 · Xzavier Aaron
Flowise 前端框架配置指南

用户需求 问题:有没有适合配置 Flowise 的前端框架? 目标:寻找类似 Open WebUI ... Microsoft Graph (2) API Call

2026-02-14 · Xzavier Aaron