因此,我试图通过在新鲜书的开发人员页面(http://developers.freshbooks.com/)上详细说明示例请求来与新鲜书 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();
}
我检查了人们遇到类似问题的线程,但解决方案要么不适用于我的情况,要么已经尝试过。欢迎任何建议。