早餐刚吃好了,已经遇到了麻烦。我正试图从我的谷歌表中调用salesforce REST api。我在python本地编写了一个工作脚本,但是把它转换成JS,出了点问题:
function authenticateSF(){
var url = 'https://login.salesforce.com/services/oauth2/token';
var options = {
grant_type:'password',
client_id:'XXXXXXXXXXX',
client_secret:'111111111111',
username:'ITSME@smee.com',
password:'smee'
};
var results = UrlFetchApp.fetch(url, options);
}
以下是错误回复:
https://login.salesforce.com/services/oauth2/token请求失败 返回代码400.截断的服务器响应: {“error_description”:“授权类型不是 支持“,”错误“:”unsupported_grant_type“}(使用muteHttpExceptions 检查完整响应的选项)(第12行,文件“代码”)
请注意,这些确切的参数在我的本地python脚本中正常工作(将键值放在引号内)。
以下是相关文档: Google Script: Connecting to external API's Salesforce: REST API guide
谢谢大家!
答案 0 :(得分:2)
Google的UrlFetchApp对象自动默认为GET请求。要进行身份验证,您必须在选项中明确设置方法" post":
function authenticateSF(){
var url = 'https://login.salesforce.com/services/oauth2/token';
var payload = {
'grant_type':'password',
'client_id':'XXXXXXXXXXX',
'client_secret':'111111111111',
'username':'ITSME@smee.com',
'password':'smee'
};
var options = {
'method':'post',
'payload':payload
};
var results = UrlFetchApp.fetch(url, options);
}