javascript - 尽管查询字符串中有 grant_type,Microsoft Graph API 返回 404 错误缺少参数

标签 javascript microsoft-graph-api

通过本教程的第 4 部分调用 Microsoft Graph API 以获取访问 token :https://learn.microsoft.com/en-us/graph/auth-v2-service?view=graph-rest-1.0

我正在执行以下提取请求:

  var options = {
    "method": "POST",
    "contentType": "application/x-www-form-urlencoded",
    "accept": 'application/json',
    "headers": {
      'Content-Type': "application/x-www-form-urlencoded",
    },
  }
  var authorization_url = "https://login.microsoftonline.com/" + tenant + 
    "/oauth2/v2.0/token/" + 
      "client_id=" + client_id + 
        "&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default" +
          "&client_secret=" + client_secret + 
              "&grant_type=client_credentials";

相当有信心我的所有参数都是正确的,但它返回无效的请求错误:“请求正文必须包含以下参数:'grant_type'”。知道可能出了什么问题吗?

最佳答案

您的 authorization_url 应仅包含端点(即无查询字符串):

var authorization_url = "https://login.microsoftonline.com/" + tenant + "/oauth2/v2.0/token/"

参数属于POST正文:

var payload = 
    "client_id=" + client_id + 
    "&client_secret=" + client_secret + 
    "&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default" +
    "&grant_type=client_credentials";

(你的选项对我来说看起来不错)

关于javascript - 尽管查询字符串中有 grant_type,Microsoft Graph API 返回 404 错误缺少参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54298914/

相关文章:

javascript - 尝试更改 css onclick 中的不透明度

javascript - 是否需要setTimeout?

azure - 使用 Azure 应用服务身份验证将 Azure Function 作为 Multi-Tenancy 应用程序连接到 Microsoft Graph

azure - 如何获取当前登录用户的 Azure AD 组,而不需要域管理员向我的应用程序授予任何权限?

microsoft-graph-api - 架构扩展 : "Unsupported or invalid query filter clause specified for property ' companyName' of resource 'User' .“

python - MS Graph/分配许可证 : primitive 'null' value was expected

javascript - 显示子项时动态更改容器背景

javascript - 在数组上使用递归

javascript - javascript 中正则表达式lookbehinds 的问题

powershell - 如何使用 Graph API 或 Powershell 在 Azure AD 中通过 SAML SSO 创建新的企业应用程序