Api调用可以使用curl,但不能使用谷歌应用程序脚本,我缺少什么



所以这部分工作:

function authenticateToggl()
{ 
url = "https://api.track.toggl.com/api/v8/me";
//Put it all together.
var options =
{
'method'     : 'get',    
'headers'    : {"Authorization": 'Basic ' + Utilities.base64Encode('email@gmail.com:mypassword')},     
};
//Make Login call to When I work.
var responseGetPlan = UrlFetchApp.fetch(url, options);
var strResponseGetPlan = responseGetPlan.getContentText();
Logger.log('Get Plan Response: ' + strResponseGetPlan); //Log response.
var parsedData = JSON.parse(strResponseGetPlan); //Parse into JSON format.
var strId = parsedData.data.api_token;
return strId;
}

这给我返回了一个字符串api令牌,我可以在像这样的api curl调用中使用它:

curl -v -u c8f4c3TOKENe5a580bfeab:api_token -X GET https://api.track.toggl.com/api/v8/workspaces/1001455/projects

通过这样做,我适当地按照api文档收回了我的项目列表。

但当我试图将其翻译成谷歌应用程序脚本时,它失败了。我确信是我的标题格式不对吗?

function nextStep(){
UrlFetchApp.fetch('https://api.track.toggl.com/api/v8/workspaces/1001455/projects', {//
'headers': {'Authorization': "Basic c8f4c3TOKENe5a580bfeab:api_token"},
'method':'get'
});
}

我收到一个403身份验证错误。基本这个词不适用于这里吗?使用相同的url、方法和令牌。

似乎需要将字符串标记转换为base64编码,

function nextStep(){
//API Key requires base64 encoding. Use Google Apps Scripts built in method
var base64token = Utilities.base64Encode("c8f4c3TOKENe5a580bfeab:api_token"); 
UrlFetchApp.fetch('https://api.track.toggl.com/api/v8/workspaces/1001455/projects', {
'headers': {'Authorization': "Basic "+base64token},
'method':'get'
});
}

其他参考:

Github-谷歌应用程序脚本Toggl请求

Github-toggl appscript

相关内容

最新更新