数か月前に BING TRANSLATE API を使用しましたが、すべてが完璧に機能していました。
今、古いファイルを開いて何かを翻訳する必要がありましたが、もう機能していないようです。
BING Web サイトで検索を試みましたが、非常にめちゃくちゃです。また、Googleで検索しましたが、時代遅れの記事がたくさんあり、どれを信じてよいかわかりません。
完全に機能した以前のコードを次に示します。
今日、新しい API キーにサインアップしましたが、新しい API キーは base64_encode 形式だと思います。デコードしてみましたが、まだうまくいきません。もちろん、デコードせずに試しました。
誰でもガイダンスを手伝ってもらえますか?
エラー:
{"SearchResponse":{"Version":"2.2","Query":{"SearchTerms":"fish"},"Errors":[{"Code":1002,"Message":"パラメーターの値が無効です。 ","Parameter":"SearchRequest.AppId","Value":"ccTq4vytm9Kh/MC8ux57OSvlU9 lqDkeiJkXM3L4jVk=","HelpUrl":"http://msdn.microsoft.com/en-us/library/dd251042.aspx"} ]}}
私のコード
define('BING_API','KEY_HERE_AAAAAAAAA');
function loadData($url, $ref = false) {
$chImg = curl_init($url);
curl_setopt($chImg, CURLOPT_RETURNTRANSFER, true);
curl_setopt($chImg, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0) Gecko/20100101 Firefox/4.0");
if ($ref) {
curl_setopt($chImg, CURLOPT_REFERER, $ref);
}
$curl_scraped_data = curl_exec($chImg);
curl_close($chImg);
return $curl_scraped_data;
}
function translate($text, $from = 'en', $to = 'fr') {
$data = loadData('http://api.bing.net/json.aspx?AppId=' . BING_API . '&Sources=Translation&Version=2.2&Translation.SourceLanguage=' . $from . '&Translation.TargetLanguage=' . $to . '&Query=' . urlencode($text));
$translated = json_decode($data);
if (sizeof($translated) > 0) {
if (isset($translated->SearchResponse->Translation->Results[0]->TranslatedTerm)) {
return $translated->SearchResponse->Translation->Results[0]->TranslatedTerm;
} else {
return false;
}
} else {
return false;
}
}
echo translate('fish','en','fr');