嗨,有人可以指导我如何发布编码为application / x-www-form-urlencoded的URL编码
实际上API建议完成如下:注意:我有所有需要在url中POST的变量。我只是无法弄清楚如何正确发布它的方式提前谢谢。
用户登录并获得他们的许可后,Envato API会在提供的确认URL上将其重定向回您的应用程序,并在查询字符串中提供一次性身份验证代码(例如http://your.app/callback?code=abc123.. )。您必须使用此代码从API请求访问令牌,方法是从服务器发送以下POST请求(编码为application / x-www-form-urlencoded),将[CODE]替换为您刚刚编写的代码收到,[CLIENT_SECRET]使用您的秘密应用程序密钥,并根据需要填写其他字段:
POST https://api.envato.com/token
grant_type=authorization_code&
code=[CODE]&
client_id=[CLIENT_ID]&
client_secret=[CLIENT_SECRET]
服务器将使用访问令牌进行响应:
{
"refresh_token": "GBdxWsxo1CqAK9yCneH75wgkXw1q7bio",
"token_type": "bearer",
"access_token": "c0lQ2WLYW9qAZ9RH12cH1fJPzVWSscXP",
"expires_in": 3600
}
那么我们如何发布URL并获得所需的响应。谢谢。
答案 0 :(得分:0)
首先,您必须提取回调的查询参数:
let params = {}; location.search.substring(1).split('&').forEach(v => { params[v.split('=')[0]] = decodeURI(v.split('=')[1]);}) ;
然后,使用您最喜欢的api进行ajax调用,然后执行:
let client_id = 'your_awesome_client_id_param';
let client_secret = 'your_amazing_client_secret_param';
fetch('https://api.envato.com/token', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: `grant_type=authorization_code&code=${params.code}&client_id=${clientId}&client_secret=${clientSecret}`
})
.then(r => return r.json())
.then(data => console.log(data))