Вызов API Active Collab v5, выдающего токен, возвращает "неверный пароль", даже если пароль действителен

Я пытаюсь получить токен 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? Если да, можете ли вы помочь обнаружить проблему?

2 ответа

Решение

Аутентификация выполняется в два этапа. Сначала нужно пройти аутентификацию в главной службе аутентификации ( https://my.activecollab.com/):

curl -XPOST -d 'email=user@example.com&password=******' https://accounts.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://accounts.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

Служба поддержки ActiveCollab предоставила мне необходимую информацию. Чтобы получить токен для моей учетной записи в облаке, мне нужно было следовать другой документации: https://gist.github.com/malizmaj/e04207c7712ba9f65fb7

Я не смог найти эту документацию самостоятельно через поиск в Google.

Было бы неплохо, если бы в документации на https://labs.activecollab.com/nightly-activecollab-api/v1/authentication.html упоминалось, что это только для не облачных учетных записей!

В любом случае, теперь я могу совершать API-вызовы на свой облачный аккаунт!

Другие вопросы по тегам