如何为 IBM Watson 的语音转文本服务 Web 套接字端点查找必要的访问 Web 令牌



我是使用 IBM Watson 服务的新手。我想测试语音转文本服务。我已经创建了一个新的 STT 服务并将其分配给创建的应用程序。根据文档,如果我想使用 STT 网络套接字端点,它需要网络令牌进行身份验证。我找到了关于如何接收 IBM 令牌的不同文章。第一个说,我需要从我的 API 密钥创建它,但是当我使用该令牌时,我不传递身份验证。另一种方法是按照此处的建议接收令牌,但为此,我需要用户名和通行证。文档说我可以在服务凭据中找到它们。但是我在服务凭据 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"
}

请帮助我弄清楚如何使用api_key接收我的 STT 服务的访问令牌。

您可以使用以下 API 密钥访问 IBM Watson 服务 API。 为服务实例生成。您可以使用 API 密钥生成 IAM 访问令牌。如果您正在开发 需要与其他 IBM 云服务配合使用的应用程序

因此,您需要执行 POST 请求identity/token方法通过传递 API 密钥来生成 IAM 访问令牌。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 密钥并管理令牌的生命周期,看看这个例子,你只需要传递你的令牌。

  • 在此处查看有关使用 Watson 服务对 IAM 进行身份验证的更多信息。

最新更新