Я пытаюсь создать плагин Hubot, который отправляет уведомления о событиях Cloud Foundry в наш чат, но у меня не получается моя голова против авторизации API в течение пары дней. По сути, я пытаюсь потреблять:
cf curl /v2/events
но я пытаюсь сделать эквивалентные базовые вызовы через Node.js, а не через CLI. Судя по тому, что я читал об OAuth2, серверное приложение только для чтения, не действующее от имени пользователя, является хорошим вариантом использования для учетные данные клиента. Я не смог найти клиентскую библиотеку CF для Node, которая поддерживает учетные данные клиента, поэтому я пытаюсь сделать это сам... безуспешно. Вот что я пробовал в bash:
CLIENT_ID=hubot-cf-test
CLIENT_SECRET=mysecret
uaac client add $CLIENT_ID --secret $CLIENT_SECRET --scope uaa.none --authorized_grant_types "client_credentials"
curl -X POST --user "$CLIENT_ID:$CLIENT_SECRET" -d 'grant_type=client_credentials' https://uaa.mycloudfoundry.com/oauth/token
# copy in access_token value from previous response
curl -H "Authorization: Bearer eyJhbGc..." https://api.mycloudfoundry.com/v2/events
что дает мне
{
"code": 1000,
"description": "Invalid Auth Token",
"error_code": "CF-InvalidAuthToken"
}
Какую глупую мелочь я делаю неправильно? Заранее спасибо!
P.S. Вот мои успехи в плагине Hubot, если кто-то интересно.