Skip to the content.

如何从零学习 Microsoft Graph API

在 Teams 的开发过程中,我们或多或少的会使用到 graph api,很多读者希望我介绍一下 graph api 的teams开发,那我就用几篇文章来具体介绍一下如何从零开始学习 Graph API。

Microsoft Graph API 是一种用于与 Microsoft 365 服务 (如 Teams,Outlook、Excel 和 SharePoint) 交互的 API。它允许开发人员在自己的应用程序中访问 Microsoft 365 数据,并使用这些数据来执行各种任务。

我把学习 Microsoft Graph API 分为一下几个步骤:

  1. 阅读 Microsoft Graph API 文档,了解它提供了哪些功能和数据。https://docs.microsoft.com/en-us/graph/
  2. 注册 Microsoft Graph API 开发人员中心,创建一个新的应用程序。
  3. 阅读 Microsoft Graph API 开发人员中心中的概述和教程,了解如何使用 API 访问 Microsoft 365 数据。https://developer.microsoft.com/en-us/graph
  4. 学习如何使用 API 访问特定服务的数据 (如 Teams,Outlook、Excel 和 SharePoint)。
  5. 访问 Microsoft Graph API 资源管理器来查看和测试不同版本的 API。https://docs.microsoft.com/en-us/graph/api-reference/v1.0/resources/resources-overview
  6. 尝试使用示例代码和教程来实现自己的应用程序。

我们从一个最简单的代码示例来看一下:

import requests
import json

# Replace YOUR_ACCESS_TOKEN with the access token you obtained
access_token = "YOUR_ACCESS_TOKEN"

# Specify the version of the API you want to use
version = "v1.0"

# Build the URL for the API call
url = f"https://graph.microsoft.com/{version}/me"

# Set the headers for the API call
headers = {
    "Authorization": f"Bearer {access_token}",
    "Content-Type": "application/json"
}

# Make the API call
response = requests.get(url, headers=headers)

# Print the response from the API
print(json.dumps(response.json(), indent=2))

这段代码会发出一个GET请求来获取当前用户的信息。

这里假设您已经获得了访问令牌,并将其替换为上面代码中的“YOUR_ACCESS_TOKEN”。代码中的 API 版本是“v1.0”,您可以根据需要更改。

获取访问令牌稍微复杂一些,我们将来的文章会具体介绍,我先给一段最简单的代码:

import requests
import json

# Replace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with your app's client ID and client secret
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"

# Replace YOUR_TENANT_ID with your tenant ID
tenant_id = "YOUR_TENANT_ID"

# The URL to request an access token
token_url = f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"

# The data to send in the token request
data = {
    "client_id": client_id,
    "client_secret": client_secret,
    "scope": "https://graph.microsoft.com/.default",
    "grant_type": "client_credentials"
}

# Make the request to get the access token
response = requests.post(token_url, data=data)

# Print the access token
print(json.dumps(response.json(), indent=2))

这里假设我们已经在 Azure Active Directory 中注册了一个应用程序,并获取了应用程序 ID 和密钥,并将它们替换为上面代码中的“YOUR_CLIENT_ID”和“YOUR_CLIENT_SECRET”。

然后根据我们的 tenant 填写tenant_id,最后发出一个POST请求来请求访问令牌。

返回的结果中会包含访问令牌,使用它就可以来访问 Microsoft Graph API。访问令牌的有效期通常是1小时,过期后就需要refresh或者重新申请令牌。

使用 Microsoft Graph API 可以执行许多 Teams 相关的操作,下面是一些常见的 Teams 操作示例:

  • 获取团队列表: 获取当前用户加入的团队列表。
  • 获取团队详细信息: 获取指定团队的详细信息,包括团队成员,频道,应用程序等。
  • 创建团队: 创建一个新的团队,并指定团队名称和成员。
  • 添加成员: 将一个或多个用户添加到指定团队。
  • 移除成员: 从指定团队中移除一个或多个成员。
  • 创建频道: 在指定团队中创建一个新频道。
  • 发送消息: 在指定团队频道中发送消息。
  • 获取团队会议: 获取指定团队中所有会议的信息。
  • 获取团队文件

Graph API 给我们敞开了Microsoft 服务的大门,我们可以使用它对 Teams 做很多事情。

Written on May 1, 2022