我正在尝试使用 Workday REST API 来获取和更新一些工作人员数据。 我在对其进行身份验证时遇到了一些困难,并且文档中关于利用 API 的信息非常少。
我已经关注了这个链接,它提供了在 Workday 中创建 OAuth 应用程序的指南,这对于 API 身份验证来说是很常见的事情。
由于我已经有一个正在运行的 ISU,因此我创建了一个“用于集成的 API 客户端”,为我提供了客户端 ID 和密码。
问题是我设法使用这些信息获取 access_token。通常这个 CURL 请求应该可以获取我的令牌:
curl --location '{OAUTH_URL}/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic {base64(CLIENT_ID:CLIENT_SECRET)}' \
--data-urlencode 'grant_type=client_credentials'
但是这会返回:
{
"error": "Invalid request"
}
有人有任何想法来实现这一目标吗?
谢谢你!
试试这个
CLIENT_ID='***** your Client ID *******'
CLIENT_SECRET='***** your client secret ********'
CLIENT_ID_SECRET=$(echo -n $CLIENT_ID:$CLIENT_SECRET | base64 -w 0)
OAUTH_URL='***** workday auth URL ******'
curl --location --request POST $OAUTH_URL'/token' \
--silent \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic '$CLIENT_ID_SECRET \
--data-urlencode "grant_type=client_credentials"
演示
跑进 git bash 终端
CLIENT_ID='bHRpY3VsdHwuY29tcH'
CLIENT_SECRET='pQaE-ceDi3nFz'
CLIENT_ID_SECRET=$(echo -n $CLIENT_ID:$CLIENT_SECRET | base64 -w 0)
OAUTH_URL='http://localhost:3000'
curl --location --request POST $OAUTH_URL'/token' \
--silent \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic '$CLIENT_ID_SECRET \
--data-urlencode "grant_type=client_credentials"