我是使用IBM Watson服务的新手。我想测试语音转文字服务。我已经创建了新的STT服务,并将其分配给创建的应用程序。根据{{3}},如果我想使用STT Web套接字端点,则需要Web令牌进行身份验证。我找到了有关如何接收IBM令牌的不同文章。 docs说,我需要从我的API密钥中创建它,但是当我使用该令牌时,我没有通过身份验证。另一种方法是按照建议的first来接收令牌,但是为此,我需要用户名并通过。 here说我可以在服务凭证中找到它们。但是我在服务凭证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服务的访问令牌。
答案 0 :(得分:0)
您可以使用以下命令访问IBM Watson服务API: 为服务实例生成的。您使用API密钥生成一个 IAM访问令牌。如果您正在开发一个 需要与其他IBM Cloud服务一起使用的应用程序
因此,您需要执行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"
不好。我建议您使用Python SDK。 SDK接受API密钥并管理令牌的生命周期,请查看 this example ,您只需要传递令牌即可。