Microsoft Translator API Java, как получить новый идентификатор клиента с помощью Azure

Translate.setClientId("что-то"); Translate.setClientSecret("something1");

Ранее я успешно выполнял свой код, используя следующий синтаксис, однако в 50% случаев я получаю сообщение об ошибке: TranslateApiException: не удается найти активную подписку переводчика из Market Place Place, связанную с учетными данными запроса. :

Я подписал свое приложение на старый веб-сайт, который использовала Microsoft, но я думаю, что проблема возникает из-за того, что они используют Azure. Теперь у меня есть приложение, подписанное на Azure, у меня есть подписка на сервисы Microsoft Translator API. Интересно, как установить это в НОВЫЙ ClientID, ClientSecret, который предоставляет Azure.

Это "старый" сайт, через который я подписался первым: https://datamarket.azure.com/home/

2 ответа

Как сказано в информации со старого официального сайта (для речи переводчика и текстового API) и объявлений, "API-интерфейс MICROSOFT TRANSLATOR теперь доступен на портале AZURE" и "Требуется действие до 30 апреля 2017 г. - Microsoft Translator переходит на Azure". Поэтому, если вы хотите использовать Translator API сейчас, вам нужно иметь подписку Azure и создать учетную запись Translator службы Azure Cognitive, как сказано в официальном учебном пособии.

Например, используя Translator Text API, вы можете следовать новому руководству, чтобы получить токен доступа для создания appid для API, как мой пример кода на Java ниже.

// 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);

Надеюсь, поможет. Любая проблема, пожалуйста, не стесняйтесь, дайте мне знать.

Вы можете войти через https://www.microsoft.com/cognitive-services

Затем вы найдете список ключей для всех служб в рамках когнитивных служб:

Другие вопросы по тегам