【问题标题】:Graph api Request token without user没有用户的图形 api 请求令牌
【发布时间】:2021-05-09 12:59:04
【问题描述】:

我正在尝试使用图形 API 最终自动创建 Microsoft Teams 会议,您可以在其中使用 URL 加入。但在我能做到这一点之前,我需要获得一个不记名令牌。因为我想在不使用用户的情况下创建会议,所以我需要使用此文档:https://docs.microsoft.com/en-us/graph/auth-v2-service。我遵循了这个文档,并首先在邮递员中尝试了一些东西,但失败了,所以我尝试在 node.js 中进行。这是我现在的代码:

const fetch = require('node-fetch');
fetch("https://login.microsoftonline.com/f8cdef31-a31e-4b4a-93e4-5f571e91255a/oauth2/v2.0/token HTTP/1.1", {
    method: "POST",
    body: JSON.stringify({"client_id":"CLIENT_ID",
    "scope":"https%3A%2F%2Fgraph.microsoft.com%2F.default",
"client_secret":"CLIENT_SECRET",
"grant_type":"client_credentials"
})}).then((reposone)=>{
    console.log(reposone)
}
);

我不确定什么是机密,所以我只是将 client_id 和 client_secret 更改为单词。我在“应用程序(客户端)ID”旁边的注册应用程序的概述选项卡中从 Azure 获得了 client_id。 client_secret 来自我生成机密的证书和机密选项卡。如果我使用插入的值执行此代码,我会得到 404 响应,所以我看不出我到底做错了什么。我猜我的网址是错误的,但我不知道还有什么可能。我从“目录(租户)ID”旁边的概述选项卡中获得了 url 中的租户 ID。

【问题讨论】:

    标签: node.js oauth-2.0 microsoft-graph-api microsoft-teams microsoft-graph-teams


    【解决方案1】:

    根据您的设计,您将有多种选择。

    我假设您将使用“POST /me/onlineMeetings”方法。您的应用注册将需要 OnlineMeetings.ReadWrite 权限才能进行委派访问,而 OnlineMeetings.ReadWrite.All 需要获得应用程序访问权限。您的应用注册可能还具有登录用户等的额外权限。

    如果您选择应用程序访问,您将使用“client_credentials”授权类型以及您的 client_id 和 client_secret 从 V2.0 端点获取您的 OAuth2 访问令牌。然后,您应该能够通过在上面的 url 中提供 objectid 或 upn 而不是“me”来创建团队会议。

    如果您选择委托访问,您最好使用来自已登录用户的访问令牌。但如果这不起作用,您可以通过使用“密码”授权类型以及您的 client_id 和资源所有者用户的用户名+密码来获取访问令牌。请注意,密码流不是推荐的做事方式。您可能会遇到许多问题,例如密码更改、权限更改、两因素身份验证,并且它不被认为是安全的。获得访问令牌后,您可以使用上面的 url 创建团队会议。会议组织者可能是资源所有者。

    【讨论】:

    【解决方案2】:

    事实证明,我做错了很多事情。首先,URL 是“https://login.microsoftonline.com/f8cdef31-a31e-4b4a-93e4-5f571e91255a/oauth2/v2.0/token”,而不是添加了 HTTP/1.1。其次,我的活动目录配置错误。我需要重新创建它,以便我成为管理员。最后,我需要将我的应用程序配置为接收 Microsoft 帐户以外的其他帐户,否则我无法为我的 API 授予应用程序权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 2020-01-25
      • 2023-03-20
      相关资源
      最近更新 更多