我使用ActiveCollab HTTPS API玩Google Apps脚本,将Google表单链接到特定项目。在项目中创建任务时,我无法确定在HTTP请求中使用访问令牌的位置。
也许我错过了它,but which API calls in the documentation要求访问令牌作为POST请求的一部分?
我发送的最基本的POST请求是:
var token = // token from authentication
{
"name": "Test task",
"token": token
}
...它返回401错误,说我没有经过身份验证。
所以,我试过了:
var token = // token from authentication
{
"name": "Test task",
"username": // my username,
"password": // my password,
"token": token
}
......结果相同。那么,哪些调用需要token
并且令牌是否在POST有效负载中?或者它应该在POST选项中吗?
2016年3月10日更新
我已将Authorization
参数添加到POST
请求中,现在我在响应中收到无效的令牌错误。我已经清理了我的缓存并成功重新授权。我的测试功能如下。
function postTicket() {
// Retrieve the stored token after a successful authorization
var token = PropertiesService.getScriptProperties().getProperty("token");
var data = {
"name": "Testing task"
}
var headers = {
Authorization: 'Bearer ' + token
};
var options = {
"method": "post",
"contentType": "application/json",
"headers": headers,
"payload": JSON.stringify(data)
}
try {
var url = BASE_URL + "/projects/8/tasks";
var response = UrlFetchApp.fetch(url, options);
var json = response.getContentText();
var data = JSON.stringify(json)
Logger.log(data);
} catch (e) {
Logger.log(e);
}
}
记录的错误是:
返回代码 500 {"类型":" ActiveCollab \认证\异常\ InvalidTokenException""消息":"授权 令牌无效","代码":0
答案 0 :(得分:2)
我遇到了同样的问题,但在检查Active Collab SDK code后我发现,我们应该使用这些标题:
var headers = {
'X-Angie-AuthApiToken': token
};
通过使用此代码,我可以通过API创建任务。
答案 1 :(得分:0)
需要使用Authorization: Bearer TOKEN_THAT_YOU_GOT_FROM_ACTIVE_COLLAB
HTTP标头发送令牌:
fetch
这意味着您需要将令牌作为请求标头的一部分发送,而不是有效负载。请查看Google Apps文档以获取详细信息(我看到headers
有<object>
个对象作为其中一个参数,因此支持此平台内置的此类交互。)