【问题标题】:Which calls need an access token in ActiveCollab v5 API哪些调用需要 ActiveCollab v5 API 中的访问令牌
【发布时间】:2017-07-28 03:17:24
【问题描述】:

我正在使用 ActiveCollab HTTPS API 作为将 Google 表单链接到特定项目的一种方式来使用 Google Apps 脚本。在项目中创建任务时,我无法弄清楚在 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.{"type":"ActiveCollab\Authentication\Exception\InvalidTokenException","message":"授权 令牌无效","代码":0

【问题讨论】:

  • 是的,看看文档。没有提及在请求中放置令牌的位置。

标签: google-apps-script activecollab


【解决方案1】:

我遇到了同样的问题,但在检查了Active Collab SDK code 之后,我发现我们应该使用这些标题:

var headers = { 
  'X-Angie-AuthApiToken': token
};

通过使用此代码,我可以通过 API 创建任务。

【讨论】:

  • 太棒了。谢谢!
【解决方案2】:

令牌需要使用Authorization HTTP 头发送:

Authorization: Bearer TOKEN_THAT_YOU_GOT_FROM_ACTIVE_COLLAB

这意味着您需要将令牌作为请求标头的一部分发送,而不是有效负载。有关详细信息,请查看 Google Apps 文档(我看到 fetchheaders 对象作为参数之一,因此平台支持这种类型的交互)。

【讨论】:

  • 好的,有道理。我添加了标题,现在我看到一个错误,说令牌是坏的。是否需要将其编码为 URI 组件?或者我可以将它作为 JS 对象发送吗?
  • 或者,我是否需要订阅 ActiveCollab 本身的 API?
  • 实际的标头似乎是 {'X-Angie-AuthApiToken': token}。您描述的令牌模式不起作用。
猜你喜欢
  • 1970-01-01
  • 2016-01-23
  • 1970-01-01
  • 2018-03-20
  • 2013-03-20
  • 2019-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多