尝试使用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');
有什么建议吗?
由于
答案 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');