そのため、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();
}
人々が同様の問題を抱えているスレッドをチェックしましたが、解決策は私の状況には当てはまらないか、すでに試されています. どんな提案でも大歓迎です。