错误:收到的令牌的令牌类型不正确 - 令牌应该是什么样的?

时间:2016-11-24 13:56:49

标签: azure microsoft-cognitive

我最近注册了Microsoft Azure并设置了认知服务帐户。使用Text Translation API Documentation中的说明,我可以使用interactive online example / issueToken 服务中检索身份验证令牌。但是,如果我想使用该令牌(例如interactive /translate example),我最终会得到回复

<html><body><h1>Argument Exception</h1><p>Method: Translate()</p><p>Parameter: </p><p>Message: The received token is of incorrect token type.</p><code></code><p>message id=0344.V2_Rest.Translate.3D8A6FF1</p></body></html>

我做错了什么?令牌应该是什么样的,我应该以什么格式提供它?在在线示例中,我通过将 appid 字段设置为“Bearer [token] ”来指定令牌,其中 [token] 是来自<的响应EM> / issueToken

在我的情况下,令牌是一个687个字符长的字符串,可以分成三个部分(使用'。'作为分隔符)。前两个部分是base64编码的,只包含一些保持不变的JSON编码信息(失效日期字段除外)。第三部分和最后一部分每次都会更改,无法使用base64进行解码。我没有提供完整的令牌,而是尝试使用完整令牌的各种子串,但到目前为止没有任何成功。

我还尝试使用身份验证 -header而不是 appid -field通过curl进行身份验证,这对我来说也不起作用。

1 个答案:

答案 0 :(得分:3)

令牌实际上必须看起来像问题文本中描述的那样(至少截至目前)。我的问题是我使用了错误的订阅密钥。请注意:您获得了翻译API和语音API的不同密钥;即使两者都在认知服务下运行,即使你通过相同的资源连接它们。

我发布这个作为我的问题的答案,因为我想确认上面列出的所有步骤都是正确的,因为我希望它可以帮助那些犯了同样错误的人。