使用英语阅读

通过


Microsoft Graph 命令行界面入门 (CLI)

在本主题中,你将使用 Microsoft Graph 命令行接口 (CLI) 来执行一些基本任务。 如果尚未 安装 CLI,请先按照本指南进行操作。

API 版本

Microsoft Graph CLI 使用 Microsoft Graph REST API v1.0

身份验证

Microsoft Graph CLI 支持两种类型的身份验证:委托访问和仅应用访问。 在本主题中,你将使用委派访问权限以用户身份登录,授予 CLI 代表你执行操作的许可,并调用 Microsoft Graph。

有关对无人参与方案使用仅限应用访问的详细信息,请参阅 将仅限应用身份验证与 Microsoft Graph 命令行接口 (CLI)

确定所需的权限范围

Microsoft Graph 中的每个 API 都受一个或多个权限范围的保护。 登录的用户必须同意你计划使用的 API 所需的范围之一。 此示例使用以下 API:

User.ReadTeam.ReadBasic.AllChannel.ReadBasic.AllChannelMessage.Send 权限范围启用这些调用。

登录

mgc login使用 命令使用所需的范围登录。

mgc login --scopes User.Read Team.ReadBasic.All Channel.ReadBasic.All ChannelMessage.Send

命令会提示你转到网页以使用设备代码登录。 完成此操作后,命令将完成。 每个会话只需登录一次。

提示

可以通过使用新的权限范围重复 mgc login 命令来添加其他权限。

调用 Microsoft Graph

登录后,可以开始调用 Microsoft Graph。

备注

Microsoft Entra资源的一些请求需要使用高级查询功能。 如果收到指示错误请求、不支持的查询或包含意外结果的响应(包括 $count 查询参数和 ConsistencyLevel 标头)的响应,则请求可能会成功。 有关详细信息和示例,请参阅 目录对象的高级查询功能

获取已登录用户

在本部分中,你将找到已登录用户并获取其用户 ID。 需要将其用作稍后使用的其他命令的参数。 首先运行以下命令。 将 替换为 <your-display-name> 已登录用户的显示名称。

mgc users list --filter "displayName eq '<your-display-name>'"

此命令输出已登录用户的 JSON 表示形式。

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
  "value": [
    {
      "businessPhones": [
        "\u002B1 412 555 0109"
      ],
      "displayName": "Megan Bowen",
      "givenName": "Megan",
      "jobTitle": "Marketing Manager",
      "mail": "MeganB@contoso.com",
      "mobilePhone": null,
      "officeLocation": "12/1110",
      "preferredLanguage": "en-US",
      "surname": "Bowen",
      "userPrincipalName": "MeganB@contoso.com",
      "id": "4db673f0-3c2a-4d45-a9d9-3a4a8c63af6e"
    }
  ]
}

可以使用 OData 查询参数 来自定义响应。 例如,若要仅请求用户的显示名称,可以使用 --select 选项。

mgc users get --user-id <user-id> --select displayName

列出用户的已加入团队

现在, mgc me joined-teams list 使用 命令列出用户加入的团队。

mgc users joined-teams list --user-id <user-id> --select displayName,id
{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams(displayName,id)",
  "@odata.count": 5,
  "value": [
    {
      "id": "ab41a24e-ed63-4725-abb7-d22f90a4fdc3",
      "displayName": "Sales and Marketing"
    },
    {
      "id": "6520aa84-f197-489c-b79e-a2614a5a2ad0",
      "displayName": "Mark 8 Project Team"
    },
    {
      "id": "e7bc29ba-7794-4df9-8f35-fce723b15fe4",
      "displayName": "Retail"
    },
    {
      "id": "22cf3814-dbef-4eb0-abe3-759b320b7d76",
      "displayName": "Digital Initiative Public Relations"
    },
    {
      "id": "76708e21-b4ad-431e-9394-4ee7536d17bf",
      "displayName": "U.S. Sales"
    }
  ]
}

选择用户加入的团队之一,并复制其 id

列出团队频道

现在,使用团队的 ID 作为命令的参数 mgc teams channels list

mgc teams channels list --team-id ab41a24e-ed63-4725-abb7-d22f90a4fdc3 --select displayName,id
{
  "@odata.context":
"https://graph.microsoft.com/v1.0/$metadata#teams(\u0027ab41a24e-ed63-4725-abb7-d22f90a4fdc3\u0027)/channels(displayName
,id)",
  "@odata.count": 2,
  "value": [
    {
      "id": "19:9194c1a65d9c478fa0dc1d5cd5bdf18a@thread.tacv2",
      "displayName": "Monthly Reports"
    },
    {
      "id": "19:YlJvOa8M094qgkEgjJR7l6AogKx9jDsLpuXsl7O8Ft81@thread.tacv2",
      "displayName": "General"
    }
  ]
}

选择其中一个通道并复制其 id

发送消息

现在你已拥有团队 ID 和频道 ID,可以向频道发布消息。 使用以下命令发送消息。

mgc teams channels messages create --team-id ab41a24e-ed63-4725-abb7-d22f90a4fdc3 --channel-id 19:YlJvOa8M094qgkEgjJR7l6AogKx9jDsLpuXsl7O8Ft81@thread.tacv2 --body '{"body": {"content": "Hello world!"}, "importance": "urgent"}'

此命令与之前使用的命令不同。 它实际上是在创建某些内容,而不是查询数据。 在 Microsoft Graph 中,此命令将转换为 HTTP POST,并且该文章的正文中需要一个 对象。 在本例中,对象是 chatMessage。 参数 --body 接受 的 chatMessageJSON 表示形式。

注销

mgc logout使用 命令注销。

mgc logout

后续步骤