GoogleのクラウドストリーミングSpeech APIでテキストにGoogle音声を使用するアンドロイドアプリケーションを開発していますが、認証が正しく機能するようになっています。Google音声サービスAPI rpcのサービスアカウントがあるGoogle Oauth2
OAuth2とGoogleサービスアカウントのauthkey.jsonを使用してGoogle Cloud APIで認証します。
google.cloud.speech.v1beta1
のSpeechGrpc.SpeechStub
クラスを使用してRPCメソッドを呼び出します。これには、APIと通信するコンストラクタ内にManagedChannel
が必要です。
私はここでGoogleCrendential
でManagedChannel
を作成する方法を示す例が見つかりました:GoogleCloudPlatform/java-docs-samples
それはチャンネルに資格情報を傍受する時点まで働いていました。チャンネルに資格情報を傍受する例で使用されClientAuthInterceptor
クラスは、GoogleCredential
はcom.google.api.client.auth.oauth2.Credential
から継承しつつ
com.google.auth.Credentials
引数としてかかり非推奨
- あります。
次の試み:それはGoogleCrendential
をラップするPlus
を使用するように私に助言Using OAuth 2.0 with the Google API Client Library for Java
例:グーグル。 しかしPlus
もdeprecated
で、上のセクションServiceAccountsに示すように、そのページのトピックGoogleCredentialに示し、また法
Plus.Builder(httpTransport, jsonFactory, credential)
.setApplicationName(APPLICATION_NAME).build();
としても、 のいずれかの方法
builder(new NetHttpTransport(), JacksonFactory.getDefaultInstance(), credential)
が含まれていませんそのページ。
SpeechGrpc.SpeechStub
クラスは、rpcメソッドを呼び出すために使用されていますが、動作するにはManagedChannel
が必要です。これが可能であるならば、私が知りたいのです
他の選択肢は多分方法
SpeechGrpc.newStub(channel).withCallCredentials(CallCredentials creds)
を通じてManagedChannel
からSpeechGrpc.SpeechStub
としないように資格を追加することができ、私はCallCredentials
を作成する方法サービスアカウントのauthkey.json
ファイルから削除します。
最後の数週間で見つけられるこのトピックに関するすべての例、Googleのドキュメントとスレッドを読みましたが、この認証が機能しません。
私はここにいる誰もが、この混乱しているGoogleのapiとライブラリの問題から私を助けてくれることを願っています。
これがパブリックである場合、サービスアカウントとOAuthのを使用したい任意の特別な理由apiとあなたはちょうどapiキーを使うことができますか? – DaImTo
さて、APIは公開されていますが、ストリーミングの場合はアカウントで支払います。すべてのドキュメントでは、oauth()。私にとっては、どの認証を使用するかは関係ありません。あなたはAPIキーメソッドで動作するソリューションを持っていますか? –
Apiキーでアカウントを識別します。 Oauthはプライベートデータにアクセスするためのものです。 – DaImTo