2017-01-30 11 views
0

私はしばらくの間、私のC#アプリケーションからMicrosoft Translatorサービスを使用してきました。しかし、私はAzureサブスクリプションを作成して以来、以下の関数は "Could not translate"のまま戻ります。私が理解するように、今はMicrosoft Translatorを何らかの形で使い分ける必要があります。私はウェブを積極的に検索しましたが、実際の例や類似の質問は見つかりませんでした。私が働いていた私のコードを提供しますが、今それはしていません下:あなたが移動する前に行ったようAzureのMicrosoft Translatorサービス(動作させる方法)

 public static String TranslateToEnglish(String str) 
     { 
      return Translate(GetTokenWrapper(), str, "en"); 
     } 

     public static String GetTokenWrapper() 
     { 
      AdmAccessToken admToken; 

      AdmAuthentication admAuth = new AdmAuthentication("..", ".."); 
      admToken = admAuth.GetAccessToken(); 
      return "Bearer " + admToken.access_token; 


     } 

     public static String Translate(HttpRequestMessageProperty httpRequestProperty,string authToken, string what, string to) 
     { 
      // Add TranslatorService as a service reference, Address:http://api.microsofttranslator.com/V2/Soap.svc 
      LanguageServiceClient client = new LanguageServiceClient(); 
      HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); 
      httpRequestProperty.Method = "POST"; 
      httpRequestProperty.Headers.Add("Authorization", authToken); 
      using (OperationContextScope scope = new OperationContextScope(client.InnerChannel)) 
      { 
        OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; 

        string sourceText = what; 

        string translationResult; 

        try 
        { 
         translationResult = client.Translate("", sourceText, "", to, "text/plain", "general", ""); 
        } 
        catch(Exception ex) { return ex.ToString(); } 
      return translationResult; 
     } 

答えて

0

あなたはAzureの上でまったく同じ方法で、Microsoftのトランスレータを使用しています。唯一の違いは、Azureキーを使用して、新しいエンドポイントからトークンを取得する必要があることです。

これは紺碧のトークンを取得する方法を示しています

https://github.com/MicrosoftTranslator/GetAzureToken

関連する問題