Вызов 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-вызовы на свой облачный аккаунт!