Microsoft Translator API Java,如何使用Azure获取客户端新ID [英] Microsoft Translator API Java, How to get client new ID with Azure

查看:219
本文介绍了Microsoft Translator API Java,如何使用Azure获取客户端新ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Translate.setClientId( 东西);
Translate.setClientSecret(something1);

Translate.setClientId("something"); Translate.setClientSecret("something1");

我之前使用以下语法成功运行了我的代码,但是,50%的时间我会得到错误说明: TranslateApiException:找不到与请求凭据关联的活动Azure市场转换器订阅。 :

I had previously ran my code successfully using the following syntax, however, 50% of the time I will get an error saying: TranslateApiException: Cannot find an active Azure Market Place Translator Subscription associated with the request credentials. :

我的应用程序订阅了Microsoft正在使用的OLD网站,但我认为问题正在发生,因为他们使用的是Azure。现在,我的应用程序订阅了Azure,我订阅了Microsoft Translator API服务。想知道如何将此设置为Azure提供的新ClientID,ClientSecret。

I had my app subscribed with the OLD website that Microsoft was using, but I think the problem is occurring because they are using Azure. Now, I have my app subscribed with Azure, I have a subscription for the Microsoft Translator API services. Was wondering how to set this to the NEW ClientID, ClientSecret that Azure provides.

这是我首先订阅的旧网站:
https://datamarket.azure.com/home/

This is the "old" site that I subscribed through first: https://datamarket.azure.com/home/

推荐答案

来自旧官方网站的信息(对于翻译演讲& text api)& 公告说, MICROSOFT TRANSLATOR API现在可以在AZURE门户上使用 2017年4月30日之前需要采取的行动 - Microsoft Translator迁移到Azure 。因此,如果您现在要使用转换程序API,则需要拥有Azure订阅并创建Azure Cognitive服务的转换程序帐户,例如官方教程说。

As the information from the old offical site(for translator speech & text api) & Announcements said, "THE MICROSOFT TRANSLATOR API IS NOW AVAILABLE ON THE AZURE PORTAL" and "Action Required before April 30, 2017 - Microsoft Translator Moves to Azure". So if you want to use the Translator API now, you need to have an Azure subscription and create a Translator account of Azure Cognitive service like the offical tutorial said.

例如使用Translator Text API,您可以按照新的教程获取访问令牌以构建 appid 用于API,如下面的Java中的示例代码。

For example using Translator Text API, you can follow the new tutorial to get an access token to build an appid for the API like my sample code in Java below.

// Get the access token
// The key got from Azure portal, please see https://docs.microsoft.com/en-us/azure/cognitive-services/cognitive-services-apis-create-account
String key = "<your translator account key>";
String authenticationUrl = "https://api.cognitive.microsoft.com/sts/v1.0/issueToken";
HttpsURLConnection authConn = (HttpsURLConnection) new URL(authenticationUrl).openConnection();
authConn.setRequestMethod("POST");
authConn.setDoOutput(true);
authConn.setRequestProperty("Ocp-Apim-Subscription-Key", key);
IOUtils.write("", authConn.getOutputStream(), "UTF-8");
String token = IOUtils.toString(authConn.getInputStream(), "UTF-8");
System.out.println(token);

// Using the access token to build the appid for the request url
String appId = URLEncoder.encode("Bearer "+token, "UTF-8");
String text = URLEncoder.encode("happy birthday", "UTF-8");
String from = "en";
String to = "fr";
String translatorTextApiUrl = String.format("https://api.microsofttranslator.com/v2/http.svc/Translate?appid=%s&text=%s&from=%s&to=%s", appId, text, from, to);
HttpsURLConnection translateConn = (HttpsURLConnection) new URL(translatorTextApiUrl).openConnection();
translateConn.setRequestMethod("GET");
translateConn.setRequestProperty("Accept", "application/xml");
String resp = IOUtils.toString(translateConn.getInputStream(), "UTF-8");
System.out.println(resp);

希望有所帮助。如有任何疑虑,请随时告诉我。

Hope it helps. Any concern, please feel free to let me know.

这篇关于Microsoft Translator API Java,如何使用Azure获取客户端新ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆