我是新加入IBM Watson`s服务部门的。我想测试语音到文字服务。我已经创建了新的STT服务,并将其分配给创建的应用程序。根据文档,如果我想使用STT web套接字端点,它需要进行身份验证的web令牌。我发现了关于如何接收IBM令牌的不同文章。第一说,我需要从我的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"
}请帮我弄清楚如何用api_key接收我的STT服务的访问令牌。
发布于 2019-01-11 13:57:59
您可以通过使用为服务实例生成的API键来访问IBM服务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服务的例子:
curl -X GET \
--header "Authorization: Bearer {token}" \
"https://gateway.watsonplatform.net/discovery/api/v1/environments?version=2017-11-07"我建议你使用Python。SDK接受一个API密钥并管理令牌的生命周期,在这个例子中查看一下,您只需要传递令牌。
https://stackoverflow.com/questions/54146229
复制相似问题