我已在MSDN论坛上发布此内容,但没有回复。我正在尝试移植使用MS Translator的应用程序,该应用程序一直使用旧的身份验证令牌机制(客户端ID,客户端密钥)来使用MS Azure。为此,我设置了一个Azure帐户,通过认知服务添加了MS Translator API,并根据此处的说明生成了密钥: https://translatorbusiness.uservoice.com/knowledgebase/articles/1078534-microsoft-tran 我可以调用Azure身份验证页面,如下所示: http://docs.microsofttranslator.com/oauth-token.html 但是,当我使用从该方法获得的令牌(来自我自己的请求和允许您尝试调用的swagger API文档),并调用API中的任何方法时,我得到的响应代码为0和响应错误标题说'没有来自服务器的响应'。
我的一部分困惑是我不确定我应该使用哪个密钥/订阅ID。当我订阅时,我得到了一个订阅ID,在调用issueToken方法时它不起作用。我还生成了两个密钥(key1和key2),可以选择重新生成它们。两者都会给我一个authToken,但当我调用API中的任何方法时,我得到相同的空响应。
例如,当我使用他们的swagger API文档(即try it按钮)调用GetLanguagesForTranslate方法时,我的请求具有以下标题:
Host: api.microsofttranslator.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Access-Control-Request-Method: GET Access-Control-Request-Headers: authorization origin: htee-tee-pee(slash-slash)docs.microsofttranslator.com
我的回答是空的。
任何人都可以告诉我发生了什么事吗?可能是因为无论出于何种原因我的订阅只是试用?除非我购买订阅,否则MS不允许我记录支持票。我不想那样做,因为我在为客户工作,一旦完成这项工作,我将不再使用订阅了。 提前致谢
答案 0 :(得分:1)
听起来您可以通过http://docs.microsofttranslator.com/oauth-token.html从Azure门户获取密钥来获取访问令牌。
根据我的经验,我认为无响应问题似乎是由于参数appid
& Authorization
。例如,使用任何字符串(例如您注册的Azure服务名称)设置appid
值,并使用Authorization
设置Bearer <access-token>
值。
但是,如下面appid
的描述。
<强> REQUIRED 即可。如果使用Authorization标头,请将appid字段留空,否则请指定包含&#34; Bearer&#34;的字符串。 +&#34; &#34; +访问令牌。
这意味着您只需要将appid
值设置为Bearer <access-token>
并将Authorization
值设为空,如下图所示。
点击Try it out!
,然后按以下步骤操作。