Как найти необходимый веб-токен доступа для конечной точки веб-сокета службы речевого преобразования текста IBM Watson? - PullRequest
0 голосов
/ 11 января 2019

Я новичок в работе со службами IBM Watson. Я хочу проверить сервис преобразования речи в текст. Я создал новый сервис STT и назначил его созданному приложению. Согласно docs , если я хочу использовать конечную точку веб-сокета STT, для аутентификации требуется веб-токен. Я нашел разные статьи о том, как получать токены IBM. first говорит, что мне нужно создать его из моего API-ключа, но когда я использую этот токен, я не передаю auth. Другой способ - получить токен, как было предложено здесь , но для этого мне нужно имя пользователя и пароль. Документы говорят, что я могу найти их в учетных данных службы. Но у меня нет таких полей в учетных данных службы JSON.

Мои учетные данные службы выглядят следующим образом:

{
  "apikey": "my_api_key",
  "iam_apikey_description": "description",
  "iam_apikey_name": "key_name",
  "iam_role_crn": "my_role_crn",
  "iam_serviceid_crn": "my_serviceid_crn",
  "url": "my_url_endpoint"
}

Пожалуйста, помогите мне выяснить, как получить токен доступа для моей службы STT с помощью api_key.

1 Ответ

0 голосов
/ 11 января 2019

Вы можете получить доступ к API-интерфейсам службы IBM Watson, используя ключи API, которые были генерируется для экземпляра службы. Вы используете ключ API для генерации Токен доступа IAM Вы также используете этот процесс, если вы разрабатываете приложение, которое должно работать с другими сервисами IBM Cloud

Итак, вам нужно выполнить POST-запрос identity/token, чтобы сгенерировать токен доступа IAM, передав ключ API. Один пример с cURL:

curl -k -X POST --header "Content-Type: application/x-www-form-urlencoded" --header "Accept: application/json" --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" --data-urlencode "apikey={your apikey}" "https://iam.bluemix.net/identity/token"

И ответ будет примерно таким:

 "access_token": "eyJhbGciOiJIUz......sgrKIi8hdFs",
 "refresh_token": "SPrXw5tBE3......KBQ+luWQVY",
 "token_type": "Bearer",
 "expires_in": 3600,
 "expiration": 1473188353

Один пример вызова Watson Services:

curl -X GET \
--header "Authorization: Bearer {token}" \
"https://gateway.watsonplatform.net/discovery/api/v1/environments?version=2017-11-07"

Obs .: Я предлагаю вам использовать Python SDK. SDK принимают ключ API и управляют жизненным циклом токенов, посмотрите в этом примере , вам просто нужно передать свой токен.

  • Подробнее об аутентификации IAM с использованием услуг Watson здесь .
...