3

新しい Azure Translation API を PHP と Curl で動作させる方法に関する簡単なチュートリアルを見つけようとしています。

文字列の変換を実行するために呼び出すことができる単純な関数のコード例はありますか?

すでにユーザー アカウントを作成し、アプリケーションを登録しています。

私はこれらの例に取り組んでいますが、それらを単純な PHP 関数として使用する方法を理解できません。

http://wangpidong.blogspot.ca/2012/04/how-to-use-new-bing-translator-api-with.html

新しい Bing API PHP の例が機能しない

4

5 に答える 5

11

この質問が数か月前のものであることは知っていますが、今日これを扱っていたので、作業コードを共有すると思いました。プライマリ アカウント キーと基本認証を使用して Microsoft Translator V2 API で Translate メソッドを使用する方法の簡単な例を次に示します。プライマリ アカウント キーはこちらで取得できます。

// Prepare variables
$text = urlencode('Hello world.');
$from = 'en';
$to = 'es';

// Prepare cURL command
$key = 'YOUR_PRIMARY_ACCOUNT_KEY';
$ch = curl_init('https://api.datamarket.azure.com/Bing/MicrosoftTranslator/v1/Translate?Text=%27'.$text.'%27&From=%27'.$from.'%27&To=%27'.$to.'%27');
curl_setopt($ch, CURLOPT_USERPWD, $key.':'.$key);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Parse the XML response
$result = curl_exec($ch);
$result = explode('<d:Text m:type="Edm.String">', $result);
$result = explode('</d:Text>', $result[1]);
$result = $result[0];

echo $result;

これは次のように返されます。

Hola mundo.

GETパラメータの詳細については、MSDNのドキュメントを参照してください。

于 2013-05-10T20:40:36.607 に答える
5

Microsoft DataMarket Translator API は、2017 年 3 月 31 日の動作を停止します: https://datamarket.azure.com/dataset/bing/microsofttranslator

そこで、将来的に機能する新しいサンプル PHP/cURL コードを作成しました。

<?php // 4.01.17 AZURE Text Translation API 2017 - PHP Code Example - Cognitive Services with CURL http://www.aw6.de/azure/
// Get your key from: http://docs.microsofttranslator.com/text-translate.html
// Put your parameters here:
$azure_key = "KEY_1";  // !!! TODO: secret key here !!!
$fromLanguage = "en";  // Translator Language Codes: https://msdn.microsoft.com/de-de/library/hh456380.aspx
$toLanguage = "de";
$inputStr = "AZURE - The official documentation and examples for PHP are useless.";
// and leave the rest of the code as it is ;-)
// Get the AZURE token
function getToken($azure_key)
{
    $url = 'https://api.cognitive.microsoft.com/sts/v1.0/issueToken';
    $ch = curl_init();
    $data_string = json_encode('{body}');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json',
            'Content-Length: ' . strlen($data_string),
            'Ocp-Apim-Subscription-Key: ' . $azure_key
        )
    );
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $strResponse = curl_exec($ch);
    curl_close($ch);
    return $strResponse;
}
// Request the translation
function curlRequest($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, "Content-Type: text/xml");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, False);
    $curlResponse = curl_exec($ch);
    curl_close($ch);
    return $curlResponse;
}
// Get the translation
$accessToken = getToken($azure_key);
$params = "text=" . urlencode($inputStr) . "&to=" . $toLanguage . "&from=" . $fromLanguage . "&appId=Bearer+" . $accessToken;
$translateUrl = "http://api.microsofttranslator.com/v2/Http.svc/Translate?$params";
$curlResponse = curlRequest($translateUrl);
$translatedStr = simplexml_load_string($curlResponse);
// Display the translated text on the web page:
echo "<p>From " . $fromLanguage . ": " . $inputStr . "<br>";
echo "To " . $toLanguage . ": " . $translatedStr . "<br>";
echo date(r) . "<p>";
?>
于 2017-01-05T19:42:20.007 に答える
0

新しい Azure トランスレーター API の公式コードはこちら: https://github.com/MicrosoftTranslator/HTTP-Code-Samples/blob/master/PHP/PHPAzureToken.php

$authHeaderただし、コードには、@Andreas によって投稿されたコードから削除された不要な余分なパラメーターが含まれています。

新しい Azure API では、アクセス トークン メソッドのみが変更されているようです。

于 2017-01-21T00:26:48.503 に答える