请求接口时,需要根据请求的服务类型,携带对应的 Resource-Id
Header。
服务类型 | Resource ID |
---|---|
长文本合成 | volc.tts_async.default |
长文本合成(带情感预测) | volc.tts_async.emotion |
说明
目前提供 Bearer Token 和 HMAC256 两种鉴权方式,选择其中一种即可。推荐使用较简单的 bearer token 鉴权。
appid、access_token 和 secret_key 由平台分配,通过控制台创建应用获得,可参考文档快速入门。
在请求接口时,须在发送的 GET 或 POST 请求中加上鉴权相关的 Authorization
header,格式为Bearer; {token}
。
GET /api/v1/tts_async/query?appid=&task_id= HTTP/1.1 Host: openspeech.bytedance.com Accept: */* User-Agent: curl/7.54.0 Resource-Id: volc.tts_async.default Authorization: Bearer; FYaWxBiJnuh-0KBTS00KCo73rxmDnalivd1UDSD-W5E=
Authorization header 的格式是 Bearer; {token}
注意
鉴权方法名和 token 之间用 ;
分隔。
相比于 token 鉴权,signature 还需在 Authorization header 中加入 access_token
、mac
、h
等信息。如以下示例:
GET /api/v1/tts_async/query?appid=fake_appid&task_id=4ad10259-0e0a-443e-963d-3b27fc69d910 HTTP/1.1 Host: openspeech.bytedance.com Accept: */* User-Agent: curl/7.54.0 Resource-Id: volc.tts_async.default Authorization: HMAC256; access_token="fake_token"; mac="PyUc1hUckhGloa55HyRS3nlYrKWNEB_jOTlfyIHnwVc"; h="Host,Resource-Id"
Authorization header 由四个部分组成:
,
分隔使用 HMAC-SHA256 算法对输入的字符串用 secret_key
作为 key进行加密,然后使用 base64 url 对结果进行编码。
待加密字符串分为三个部分:
h
,则根据 h
添加示例模版如下(添加了换行符以提高可读性,输入字符串的实际换行符使用 \n
进行转义):
<Method> <URI> <Proto>\n <Header1>\n <Header2>\n ...\n <Body>
注意
\n
结尾h
里指定的顺序加入待加密字符串。若原始请求为:
GET /api/v1/tts_async/query?appid=fake_appid&task_id=4ad10259-0e0a-443e-963d-3b27fc69d910 HTTP/1.1 Host: openspeech.bytedance.com User-Agent: curl/7.54.0 Resource-Id: volc.tts_async.default
假设 secret_key
为下面以 16 进制表示的二进制串(该二进制串对应的原始文本为"super_secret_key"):
73 75 70 65 72 5f 73 65 63 72 65 74 5f 6b 65 79
指定 h
为 "Host,Resource-Id",则原始待加密字符串为:
GET /api/v1/tts_async/query?appid=fake_appid&task_id=4ad10259-0e0a-443e-963d-3b27fc69d910 HTTP/1.1 openspeech.bytedance.com volc.tts_async.default (空行)
经过 HMAC-SHA256 加密 以及 base64 url 编码后,计算得出 mac
为:
PyUc1hUckhGloa55HyRS3nlYrKWNEB_jOTlfyIHnwVc
假定 access_token
为 “fake_token” 所以最终的请求为:
GET /api/v1/tts_async/query?appid=fake_appid&task_id=4ad10259-0e0a-443e-963d-3b27fc69d910 HTTP/1.1 Host: openspeech.bytedance.com User-Agent: curl/7.54.0 Resource-Id: volc.tts_async.default Authorization: HMAC256; access_token="fake_token"; mac="PyUc1hUckhGloa55HyRS3nlYrKWNEB_jOTlfyIHnwVc"; h="Host,Resource-Id"