Microsoft Graph Rest Api에서 일부 정보를 요청해야 하는 첫 번째 Cron 작업을 작성하려고 합니다. 나는 PHP를 사용하여 이 작업을 성공적으로 수행했지만 Bash 컬과 함께 작동하도록 할 수 없습니다. 다양한 구문 지침을 따랐으며 요청이 올바르게 설정되었다고 확신하지만 Microsoft로부터 올바른 응답을 받을 수 없습니다.
내 쉘 스크립트:
curl -i -X POST --data "{'grant_type':'client_credentials','client_secret':'****','client_id':'****','scope':'https://graph.microsoft.com/.default'}" --trace mylog.txt https://login.microsoftonline.com/****/oauth2/v2.0/token
로그 파일에서 주체가 올바르게 설정되었음을 볼 수 있지만 항상 이 오류가 발생합니다.
{"error":"invalid_request","error_description":"AADSTS900144: The request body must contain the following parameter: 'grant_type'. Trace ID: 3a5fb023-6dcb-465c-a39a-2e432cc62c00 Correlation ID: 33387641-8a36-4dac-aa46-c623ce170960 Timestamp: 2020-09-03 10:01:42Z","error_codes":[900144],"timestamp":"2020-09-03 10:01:42Z","trace_id":"3a5fb023-6dcb-465c-a39a-2e432cc62c00","correlation_id":"33387641-8a36-4dac-aa46-c623ce170960","error_uri":"https://login.microsoftonline.com/error?code=900144"}
내 로그 파일 https://pastebin.com/vFQARkyD
어쩌면 누군가 이런 일이 일어나는 이유를 알고 있을 수도 있습니다.
답변1
JSON 본문에서는 큰따옴표 대신 작은따옴표를 사용합니다.
노력하다:
curl -i -X POST --data '{"grant_type":"client_credentials","client_secret":"****","client_id":"****","scope":"https://graph.microsoft.com/.default"}' --trace mylog.txt https://login.microsoftonline.com/****/oauth2/v2.0/token