【问题标题】:Active Collab v5 issue-token API call returns "invalid password" even though password is valid即使密码有效,Active Collab v5 问题令牌 API 调用也会返回“无效密码”
【发布时间】:2016-01-07 19:57:32
【问题描述】:

我正在尝试通过此调用获取 API 令牌:

curl -H "Content-Type: application/json" -X POST -d '{"username": "MY_EMAIL","password": "MY_PWD","client_name": "XXX","client_vendor": "XXX"}' https://app.activecollab.com/MY_ID/api/v1/issue-token

但即使密码正确,我也会收到此回复:

{
    "type":"ApiSubscriptionError",
    "message":"Invalid password",
    "code":3
}

我正在按照https://labs.activecollab.com/nightly-activecollab-api/v1/authentication.html的说明进行操作

有人可以使用 Active Collab v5 API 吗?如果有,您能帮忙找出问题吗?

【问题讨论】:

    标签: api activecollab


    【解决方案1】:

    身份验证分两步完成。第一个是向主身份验证服务(https://activecollab.com)进行身份验证:

    curl -XPOST -d 'email=user@example.com&password=******' https://activecollab.com/api/v1/external/login
    

    此调用将返回经过身份验证的用户有权访问的帐户列表以及用户详细信息:

    {
        "is_ok": true,
        "accounts": [
            {
                "class": "FeatherApplicationInstance",
                "display_name": "Company Name (ID: #ACCOUNT_ID#)",
                "name": 1,
                "url": "https://app.activecollab.com/#ACCOUNT_ID#"
            }
        ],
        "user": {
            "avatar_url": "https://activecollab.com/avatars/user_#USER_ID#.png",
            "first_name": "John",
            "last_name": "Doe",
            "intent": "long string"
        }
    }
    

    在用户属性中有intent 属性。它用于对特定的 Active Collab 5 帐户进行身份验证,如下所示:

    curl -XPOST -d 'intent=LONG-INTENT-STRING-HERE&client_name=AppName&client_vendor=AppVendor' https://app.activecollab.com/#ACCOUNT_ID#/api/v1/issue-token-intent
    

    客户供应商和客户名称是您的组织名称和您的应用程序的名称。此调用将返回一个令牌,您可以使用该令牌在该帐户中进行进一步的 API 调用:

    curl -H "X-Angie-AuthApiToken: TOKEN-HERE" https://app.activecollab.com/#ACCOUNT_ID#/api/v1/projects
    

    【讨论】:

    • 这个答案似乎不再有效。我在云帐户上,我能够从第一个 curl 请求中获取一个意图字符串,但是第二个 curl 不起作用。它返回了 400 错误,没有更多信息。我尝试根据这个答案下的答案和我在文档中看到的东西混合各种参数和端点。似乎没有任何效果。
    • 你好 Fancis。刚刚试了一下,所有三个请求都按该顺序执行。
    • 我今天又试了一次,成功了。不知道为什么我得到了不同的回应。我的 bash 历史记录显示了完全相同的 curl 请求 - 除非从堆栈溢出中复制和粘贴某种不可见/错误的空白字符导致了问题。
    • @Ilija 我尝试了上述方法(my.activecollab.com/api/v1/external/login)并得到回复说我需要“仔细检查我的密码”。但这是我用来登录my.activecollab.com 然后选择项目的密码。请帮忙,我在这里做错了什么。我正在使用 Postman 测试请求
    • 为我工作! API 说明中没有明确描述令牌侦听器名称!
    【解决方案2】:

    一位 activeCollab 支持人员向我提供了我需要的信息。要为我的云帐户获取令牌,我必须遵循不同的文档:https://gist.github.com/malizmaj/e04207c7712ba9f65fb7

    我无法通过谷歌搜索自行找到该文档。

    如果https://labs.activecollab.com/nightly-activecollab-api/v1/authentication.html 的文档提到它仅适用于非云帐户,那就太好了!

    无论如何,我现在可以对我的云帐户进行 API 调用了!

    【讨论】:

      猜你喜欢
      • 2017-08-28
      • 2012-07-09
      • 2018-03-03
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 2019-09-11
      • 2020-09-12
      相关资源
      最近更新 更多