Workday - REST API 身份验证

问题描述 投票:0回答:1

我正在尝试使用 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"
}

有人有任何想法来实现这一目标吗?

谢谢你!

oauth-2.0 workday-api
1个回答
0
投票

试试这个

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"

© www.soinside.com 2019 - 2024. All rights reserved.