3

テキストを翻訳するために Bing Translation API [HTTP] を呼び出すと、最初は正常に機能し、2 回目以降は「bad request」[ステータス コード 400] エラーが発生します。10分ほど待ってから再試行すると、最初のリクエストは成功しますが、2番目のリクエストは同じ話になります。Bing Translation API の無料アカウント [200 万文字の翻訳] を持っています。この API の呼び出しに他に制限はありますか?

ありがとう、マドゥ

回答: こんにちは、Microsoft Translator のデータ セット サブスクリプションを購読できませんでした。私が同じになると、問題は解決しました。すなわち; https://datamarket.azure.com/dataset/bing/microsofttranslatorにサインアップすると、機能しています。

私は access_token を正しく生成していたので、それは問題ではありません。ありがとう、マドゥ

4

2 に答える 2

1

問題を抱えている他の人へのメモとして、このサービスでは、無料サブスクリプションを使用するときにトークンを1 回しか使用できないことがわかりました。各トークンで翻訳サービスを複数回呼び出すには、有料サブスクリプションが必要です。もちろん、この制限は文書化されていません。

単純に新しいトークンを取得し続けることができるかどうかはわかりませんが、できないと思います。

また、サブスクリプションに関係なく、トークンは 10 分ごとに期限切れになるため、トークンを受け取った時点を追跡し、必要に応じて新しいトークンを取得してください。たとえば (スレッドセーフではありません):

private string _headerValue;
private DateTime _headerValueCreated = DateTime.MinValue;
public string headerValue {
    get {
        if(_headerValueCreated < DateTime.Now.AddMinutes(-9)) {
            var admAuth = new AdmAuthentication("myclientid", "mysecret");
            _headerValue = "Bearer " + admAuth.GetAccessToken();
            _headerValueCreated = DateTime.Now;
        }
        return _headerValue;
    }
}
于 2014-05-19T16:20:45.043 に答える
1

Microsoft Translator DATA セット サブスクリプションの購読を逃しました。私が同じになると、問題は解決しました。すなわち; https://datamarket.azure.com/dataset/bing/microsofttranslatorにサインアップすると、機能しています。

ありがとう、マドゥ

于 2012-12-24T11:02:47.853 に答える