当前位置: 首页 > 知识库问答 >
问题:

POST请求到Graph API失败,请求错误

蒋岳
2023-03-14

我正在开发一个脚本,以访问图形API阅读我们的广告中的所有用户。我正在通过以下方式使用AXIOS执行一个请求

    let response;
    try {
        response = await axios.post(`https://login.microsoftonline.com/${config.get('azure.tenant')}/oauth2/v2.0/token`, {
            client_id: config.get('azure.appId'),
            scope: config.get('azure.scope'),
            client_secret: config.get('azure.secret'),
            grant_type: config.get('azure.grantType')
        });
    } catch (e) {
        res.send(e);
    }

然而,这失败了,因为:

{
"message": "Request failed with status code 400",
"name": "Error",
"stack": "Error: Request failed with status code 400\n    at createError (C:\\_Apps\\repos\\timesAPI\\node_modules\\axios\\lib\\core\\createError.js:16:15)\n    at settle (C:\\_Apps\\repos\\timesAPI\\node_modules\\axios\\lib\\core\\settle.js:17:12)\n    at IncomingMessage.handleStreamEnd (C:\\_Apps\\repos\\timesAPI\\node_modules\\axios\\lib\\adapters\\http.js:237:11)\n    at IncomingMessage.emit (events.js:194:15)\n    at endReadableNT (_stream_readable.js:1103:12)\n    at process._tickCallback (internal/process/next_tick.js:63:19)",
"config": {
"url": "https://login.microsoftonline.com/86xxxxxxxxx8df7b/oauth2/v2.0/token",
"method": "post",
"data": "{\"client_id\":\"18xxxxxxxxf5x\",\"scope\":\"https://graph.microsoft.com/.default\",\"client_secret\":\"/xxxxxxxS:6xxxxxsxxQ\",\"grant_type\":\"client_credentials\"}",
"headers": {
"Accept": "application/json, text/plain, */*",
"Content-Type": "application/json;charset=utf-8",
"User-Agent": "axios/0.19.0",
"Content-Length": 184
},
"transformRequest": [
null
],
"transformResponse": [
null
],
"timeout": 0,
"xsrfCookieName": "XSRF-TOKEN",
"xsrfHeaderName": "X-XSRF-TOKEN",
"m

axContentLength": -1
}
}

client_id=535FB089-9FF3-47B6-9BFB-4F1264799865&scope=https%3a%2f%2fgraph.microsoft.com%2f.default&client_secret=qwgdyamab0yskul1qkv5bpx&grant_type=client_credentials

我只是发错了头吗?

共有1个答案

卢承弼
2023-03-14

解决了。我使用字符串作为第二个参数发送了凭据:client_id=${config.get('azure.appid')}&scope=${config.get('azure.scope')}&client_secret=${config.get('azure.secret')}&grant_type=${config.get('azure.granttype')}

 类似资料:
  • 附注:我没有张贴整个控制器。这里只包括http请求部分。

  • 这一条给出: 这个: 我想做的是避免为所有测试编写完整的jsons,如果我可以跳过所有“”和{},将会更快。我的方法正确吗?

  • 希望在Mulesoft HTTP请求中实现以下功能 卷曲“https://somedomain.com/1/1/1/search“ -X POST -H”授权:承载令牌”

  • 我的本地dev-Kafka模式注册表正在运行,我能够从我的生产者发布模式并获得一个ID。我使用自动注册=false,与我的生产服务器相同。但我对模式进行了更新,添加了一个字符串。 POST以404失败 org.apache.kafka.common.errors。SerializationException:检索Avro架构时出错:由io.confluent.kafka.schemaregistr

  • 我正在尝试通过Livy连接到一个kerberized hadoop集群以执行Spark代码。请求调用im制作如下所示。 此调用失败,出现以下错误 GSSException:未提供有效凭据(机制级别:找不到任何Kerberos凭据) 如果有任何帮助,我们将不胜感激。