使用JavaScript的Toggl API

时间:2013-10-01 09:31:25

标签: javascript http rest

尝试使用PHP cURL访问Toggl报告API后,我没有运气,现在尝试使用JavaScript进行HTTPRequest。我收到了来自API的200回复​​,所以知道我已经联系了,我只是不知所措。

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://toggl.com/reports/api/v2", false);
xhr.send();
document.write("Status code: " + xhr.status + " ");
document.write(xhr.statusText + "</br>");

我尝试设置文档中描述的请求标头,但这会导致200响应,所以我知道我做错了...

xhr.setRequestHeader('Authorization':'[api token encoded with base 64]','Content-type':'application/json');

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:2)

我知道这已经晚了几年,但如果有人处于同一位置,这对我有用:

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://toggl.com/reports/api/v2/weekly?user_agent=yourname@domain.com&workspace_id=012345", false);
xhr.setRequestHeader('Authorization', 'Basic XXXXXX');
xhr.send();
document.write("Status code: " + xhr.status + " ");
document.write(xhr.statusText + "</br>");

XXXXXX是您的api密钥加上字符串&#34;:api_token&#34;以base-64编码。

因此,如果您的api密钥是12345,则编码字符串&#34; 12345:api_token&#34;在base-64中获取MTIzNDU6YXBpX3Rva2Vu。

在javascript中你可以使用btoa函数来获取base-64编码的字符串:btoa(&#34; 12345:api_token&#34;)。

NB :请注意,您需要在网址中指定 user_agent workspace_id ,如toggle api文档中所述:{{3 }}

查找workspace_id的最简单方法是单击名为&#34; Team&#34;的选项卡。并从网址中复制该号码:https://github.com/toggl/toggl_api_docs/blob/master/reports.md 012345

user_agent是您的应用程序名称或电子邮件地址。

答案 1 :(得分:0)

我不知道你使用的任何API:在JS的标题中,尝试用,

替换它们
xhr.setRequestHeader('Authorization','[api token encoded with base 64]','Content-type','application/json');