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



我最近注册到Microsoft Azure并设置了认知服务帐户。使用文本翻译API文档中的说明,我能够使用交互式在线示例从/issuetoken 服务中检索身份验证令牌。但是,如果我想使用该令牌(例如,对于互动/翻译示例),我最终会得到响应

<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个字符长的字符串,可以分为三个部分(使用'。'作为定界符)。前两个部分是基本64编码的,只包含一些保持恒定的JSON编码信息(除非到期日期字段除外)。第三部分和最后一部分每次都会改变,无法使用base64解码。我还没有提供完整的令牌,我还尝试使用完整令牌的各种子字符串,但到目前为止没有任何成功。

我还尝试使用 authentication -header而不是 appid field进行认证,这也对我不起作用。

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

我将其发布为我的问题的答案,因为我想确认上面列出的所有步骤都是正确的,并且我希望它可以帮助与我相同的错误的人。

最新更新