如何将Toggl API的curl示例转换为Google Apps Script/JavaScript代码
正确实现代码
Toggl的API使用HTTP Basic Auth进行身份验证,不能直接把账号密码放在请求payload里,且你调用的获取个人信息接口仅支持GET请求,两次报错的原因分别是:
- 第一次403:未携带任何身份验证凭证
- 第二次405:对仅支持GET的接口使用了POST请求,且身份验证方式不符合规范
正确代码如下:
function getTogglUserInfo() { // 替换为你自己的Toggl账号和密码,也可以用API Token当密码,账号固定填api_token,安全性更高 const username = '你的Toggl登录邮箱'; const password = '你的Toggl密码/API Token'; // 拼接为username:password格式并进行Base64编码,符合Basic Auth要求 const authHeader = 'Basic ' + Utilities.base64Encode(`${username}:${password}`); const options = { method: 'get', headers: { 'Authorization': authHeader } }; const response = UrlFetchApp.fetch('https://api.track.toggl.com/api/v8/me', options); // 解析返回的JSON数据 const userInfo = JSON.parse(response.getContentText()); console.log(userInfo); return userInfo; }
如果需要调用其他Toggl接口(比如启动定时器的POST接口),只需要修改method参数为对应的请求方法,按需添加payload参数即可,身份验证部分的逻辑通用。
内容的提问来源于stack exchange,提问作者J. G.
相关产品推荐
相关产品推荐

