【问题标题】:UrlFetchApp Authentication failed FreshbooksUrlFetchApp 身份验证失败 Freshbooks
【发布时间】:2013-09-10 18:41:04
【问题描述】:

因此,我试图通过在 Freshbooks 的开发人员页面 (http://developers.freshbooks.com/) 上详细说明示例请求来与 Freshbooks api 进行通信。我们正在执行基于令牌的身份验证,而不是使用 OAuth。

我的代码在电子表格中记录了对我的请求的响应。它记录的响应如下:

<?xml version="1.0" encoding="utf-8"?>
<response xmlns="http://www.freshbooks.com/api/" status="fail">
  <error>Authentication failed.</error>
  <code>20010</code>
</response>

在控制台中使用 curl 命令时,我已经能够进行身份验证,但在运行脚本时却不行。下面是我使用的代码。省略了电子表格部分的日志记录以及我们特定的 url 和 authToken:

// Sample function to call into an API using basic HTTP auth
function freshbooksTest () {
  var url = ;
  var authToken = ;

  var unamepass =authToken+":X";
  var digestfull = "Basic "+unamepass;


  var payload = '<request method="system.current"></request>';

  var options =
    {
      "method" : "post",
      "muteHttpExceptions": true,
      "headers" : {"Authorization": digestfull},
      "payload" : payload
    };

    var response = UrlFetchApp.fetch(url, options);
    var xml = response.getContentText();
}

我检查了人们遇到类似问题的线程,但解决方案要么不适用于我的情况,要么已经尝试过。欢迎任何建议。

【问题讨论】:

    标签: urlfetch freshbooks-api


    【解决方案1】:

    对 UrlFetchApp 不是特别熟悉,但如果它不适合您,您需要在将其发送到标头之前对 digestfull 进行 Base64 编码。

    【讨论】:

      【解决方案2】:

      看起来您需要对您的身份验证令牌进行 base 64 编码。代码应如下所示:

      function freshbooksTest () {
        var url = ;
        var authToken = ;
      
        var unamepass = authToken+":X";
        var digestfull = "Basic "+ Utilities.base64Encode(unamepass);
      
      
        var payload = '<request method="system.current"></request>';
      
        var options =
          {
            "method" : "post",
            "muteHttpExceptions": true,
            "headers" : {"Authorization": digestfull},
            "payload" : payload
          };
      
          var response = UrlFetchApp.fetch(url, options);
          var xml = response.getContentText();
      }
      

      【讨论】:

        猜你喜欢
        • 2014-01-24
        • 2011-06-25
        • 2017-11-27
        • 1970-01-01
        • 1970-01-01
        • 2022-01-11
        • 2014-05-23
        相关资源
        最近更新 更多