私はgoogle tranlation APIを活用したい小さなスラックボットを実装しようとしていますが、うまくいくためには苦労しています。私は1つのリクエストを実行することができましたが、その1つのリクエストが成功した後は、常に「403 - Daily Limit Exceeded」というメッセージが表示されます。.NETクライアントをGoogle翻訳APIに使用すると、毎日制限を超過するのを修正するにはどうすればよいですか?
私はF#を使用していて、私の単純なコードは次のようになります。
module Translation =
open Google.Cloud.Translation.V2
let client = TranslationClient.Create()
let detectLanguage text =
let detection = client.DetectLanguage(text)
let res = sprintf "%A %A %A %A" detection.Confidence detection.IsReliable detection.Language detection.Text
res
私は "detectLanguage" を呼び出すとき、私は戻って、この例外を取得:
未処理の例外:Google.GoogleApiException: Google.Apis.Requests.RequestError超過 値幅制限[403] エラー[ メッセージ[値幅制限超過]場所[ - ]理由[dailyLimitExceeded]ドメイン[usageLimits] ] でGoogle.Cloud.Translation.V2.TranslationClient.DetectLanguageでGoogle.Apis.Requests.ClientServiceRequest
1.Execute() at Google.Cloud.Translation.V2.TranslationClientImpl.DetectLanguages(IEnumerable
1 textItems) (文字列テキスト)
私はコンソールをチェックすると、私はすべての要求が行われたことを見ることができません私はそれが正しく設定されていないかもしれないと思っています。どうすればこの問題を回避できますか?
私はフォーラムで質問を投稿しましたhttps://groups.google.com/forum/#!topic/google-translate-api/5JHj3RLrH7o、最初に私は正しく認証する必要があるというコメントを得ました。私が理解している限り、.NETクライアントTranslationClient.Create()
は、指定していない場合はデフォルトの認証情報を使用する必要があります。これは、他のすべてのGoogleツールで使用できます。
このようなサウンドは、それでいいかもしれませんが、今日後でテストして検証します。他のすべてのタイプのサービスのように、「自分の」資格情報を使用する方法はありますか、それをローカルで実行したい場合はサービスアカウントが必要ですか?特定のプロジェクトをターゲットにするように認証を強制するのと同じですか? –
@TomasJansson:実際には、実際のユーザーの資格情報を取得する可能性がありますが、gcloud認証資格情報を使用することはできません。サービスアカウントは推奨されるアプローチです。 –