Google 应用脚本 - PayPal API - 获取访问令牌
Google App Script - PayPal API - Get Access Token
我有这个功能,可以给我 cURL 中的访问令牌
curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
-H "Accept: application/json" \
-H "Accept-Language: en_US" \
-u "client_id:secret" \
-d "grant_type=client_credentials"
来源:https://developer.paypal.com/docs/api/overview/#get-an-access-token
但是当我尝试 运行 google 应用程序脚本中的函数(应该是相同的)时,错误总是:"invalid token"。我做错了什么?
function lol(){
var request = UrlFetchApp.fetch("https://api.sandbox.paypal.com/v1/oauth2/token", {
"Accept": "application/json",
"Accept-Language": "en_US",
"CLIENT_ID":"SECRET",
"grant_type":"application/x-www-form-urlencoded"
})
Logger.log(request.getContentText());
}
CLIENT_ID & SECRET 是个人的,是从我的 PayPal 帐户复制的。
这个修改怎么样?
修改点:
- 在 UrlFetchApp 中,正如 Sandy Good 所说,您需要明确指定该方法。在您的情况下,它是 "POST".
- 在 UrlFetchApp 中,默认
Content-Type
是 application/x-www-form-urlencoded
。
- curl命令的选项
-u
是基本授权。
- curl 命令的选项
-H
是 header。
- 在PayPal的curl sample,
grant_type
是client_credentials
。
反映以上几点的脚本如下
修改脚本:
function myFunction(){
var client_id = "client_id"; // Please input your client_id
var secret = "secret"; // Please input your client secret
var options = {
method: "post",
headers : {
"Authorization" : " Basic " + Utilities.base64Encode(client_id + ":" + secret),
"Accept": "application/json",
"Accept-Language": "en_US"
},
payload: {"grant_type": "client_credentials"}
};
var request = UrlFetchApp.fetch("https://api.sandbox.paypal.com/v1/oauth2/token", options);
Logger.log(request.getContentText())
}
如果这对您没有用,我很抱歉。
我有这个功能,可以给我 cURL 中的访问令牌
curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
-H "Accept: application/json" \
-H "Accept-Language: en_US" \
-u "client_id:secret" \
-d "grant_type=client_credentials"
来源:https://developer.paypal.com/docs/api/overview/#get-an-access-token
但是当我尝试 运行 google 应用程序脚本中的函数(应该是相同的)时,错误总是:"invalid token"。我做错了什么?
function lol(){
var request = UrlFetchApp.fetch("https://api.sandbox.paypal.com/v1/oauth2/token", {
"Accept": "application/json",
"Accept-Language": "en_US",
"CLIENT_ID":"SECRET",
"grant_type":"application/x-www-form-urlencoded"
})
Logger.log(request.getContentText());
}
CLIENT_ID & SECRET 是个人的,是从我的 PayPal 帐户复制的。
这个修改怎么样?
修改点:
- 在 UrlFetchApp 中,正如 Sandy Good 所说,您需要明确指定该方法。在您的情况下,它是 "POST".
- 在 UrlFetchApp 中,默认
Content-Type
是application/x-www-form-urlencoded
。 - curl命令的选项
-u
是基本授权。 - curl 命令的选项
-H
是 header。 - 在PayPal的curl sample,
grant_type
是client_credentials
。
反映以上几点的脚本如下
修改脚本:
function myFunction(){
var client_id = "client_id"; // Please input your client_id
var secret = "secret"; // Please input your client secret
var options = {
method: "post",
headers : {
"Authorization" : " Basic " + Utilities.base64Encode(client_id + ":" + secret),
"Accept": "application/json",
"Accept-Language": "en_US"
},
payload: {"grant_type": "client_credentials"}
};
var request = UrlFetchApp.fetch("https://api.sandbox.paypal.com/v1/oauth2/token", options);
Logger.log(request.getContentText())
}
如果这对您没有用,我很抱歉。