Google Apps脚本:Salesforce API调用

时间:2014-12-02 14:39:33

标签: api google-apps-script salesforce

早餐刚吃好了,已经遇到了麻烦。我正试图从我的谷歌表中调用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

谢谢大家!

1 个答案:

答案 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);
}