私が本質的にやろうとしているのは、カードが Trello のリストに配置されたときに Harvest で請求書を生成することです。Zapier を試してみましたが、請求書機能が組み込まれていません。
私はこれを自分で開発する必要があります。Trello には Javascript または Python アクションがあるため、これら 2 つの言語に限定されます。
ZAPIER: Trello Trigger > Javascript or Python code
送信する必要があるJSONリクエストがあります
https://[site].harvestapp.com/invoices
Authorization: Basic amNtMjU4MkBnbWFpbC5jb206YTEwMDUw**NB
Content-Type: application/javascript
Accept: application/json
{
"invoice": {
"due_at_human_format": "NET 10",
"client_id": 3849315,
"currency" : "United States Dollar - USD",
"issued_at": "2015-04-22",
"subject": "Your invoice subject goes here",
"notes": "Some notes go here",
"number": "303197",
"kind": "project",
"projects_to_invoice": "120353",
"import_hours": "yes",
"import_expense": "yes",
"period_start": "2015-03-01",
"period_end": "2016-03-31",
"expense_period_start": "2015-03-31",
"expense_period_end": "2016-03-31"
}
}
ロジックを含む基本的なログイン認証を使用して、ベアボーンのpython または JavaScriptでこれを投稿するにはどうすればよいですか? コードのサンプルビットが役立ちます。
更新: このコードを追加しましたが、Postman の外で動作させることができないようです
var data = JSON.stringify({
"invoice": {
"due_at_human_format": "NET 10",
"client_id": 3849315,
"currency": "United States Dollar - USD",
"issued_at": "2015-04-22",
"subject": "Your invoice subject goes here",
"notes": "Some notes go here",
"number": "303197",
"kind": "project",
"projects_to_invoice": "120353",
"import_hours": "yes",
"import_expense": "yes",
"period_start": "2015-03-01",
"period_end": "2016-03-31",
"expense_period_start": "2015-03-31",
"expense_period_end": "2016-03-31"
}
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://[url].harvestapp.com/invoices");
xhr.setRequestHeader("authorization", "Basic amNtMjU4MkBnbWFpbC***TEwMDUwMTNB");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("accept", "application/json");
xhr.setRequestHeader("cache-control", "no-cache");
xhr.setRequestHeader("postman-token", "2c652344-1be5-8969-adf3-a7ca9ee7179f");
xhr.send(data);