NodeJS 节点和Microsoft图形API

ldfqzlk8  于 2022-12-03  发布在  Node.js
关注(0)|答案(1)|浏览(147)

我希望能够从nodejs向graph API发送请求。为此我学习了https://learn.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-nodejs-console教程,我设法获得了一个令牌,允许我在失眠的情况下在端点https://graph.microsoft.com/v1.0/users上执行请求。我有JSON格式的租户用户列表。但在JS中,response.data是不可读的(▼ ◇���KK ...),我试图更改编码,但没有成功。
教程使用了axios库和get方法来获得结果,是否有必要添加一些东西来获得一个json?

ovfsdjhp

ovfsdjhp1#

你需要在axios.get头文件中添加Accept-Encodingapplication/json
将此选项用于axio get调用的Add a method to call a web API部分

const options = {
        headers: {
            Authorization: `Bearer ${accessToken}`,
            'Accept-Encoding': 'application/json'
        }
    };

它是known defect
在axios v1.2.0中默认为gzip
文件结构从教程中复制三个文件并修改Axios选项部分x1c 0d1x
package.json

{
  "name": "answer89",
  "version": "1.0.0",
  "description": "",
  "main": "bin/index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@azure/msal-node": "^1.14.4",
    "axios": "^1.2.0",
    "dotenv": "^16.0.3",
    "yargs": "^17.6.2"
  }
}

文件

# Credentials
TENANT_ID={your tenant id}
CLIENT_ID={your client id}
CLIENT_SECRET={your secret}

# Endpoints
AAD_ENDPOINT=https://login.microsoftonline.com
GRAPH_ENDPOINT=https://graph.microsoft.com

CLIENT_ID -在UI中翻转顺序
租户标识

客户_秘密

检查您的应用中的权限-用户。Read

检查所有者是否为您x1c4d 1x
在“终端”中运行

npm install
node . --op getUsers

最后运行时,即使代码为“ERR_BAD_REQUEST”,Axios标头中仍有JWT(访问令牌)

相关问题