0

현재 구글 클라우드 스트리밍을 통해 Google Speech를 텍스트로 사용하는 안드로이드 응용 프로그램을 개발 중입니다. Speech API 그러나 인증을 얻는 데 문제가 있습니다.구글 Oauth2 Google 음성 API rpc 서비스 계정이 작동하지 않습니다.

OAuth2 및 Google 서비스 계정의 authkey.json을 사용하여 Google Cloud API에서 인증하려고합니다.

패키지 google.cloud.speech.v1beta1SpeechGrpc.SpeechStub 클래스를 사용하여 RPC 메소드를 호출합니다. 이는 API와 통신하는 생성자에 ManagedChannel이 필요합니다. GoogleCloudPlatform/java-docs-samples

그것은 채널에 자격 증명을 차단 지점까지 일 :

은 내가 ManagedChannel 여기 GoogleCrendential로 만드는 방법을 보여주는 예제를 발견했다. 채널에 자격을 차단하기 위해 실시 예에서 사용되는 ClientAuthInterceptor 클래스는
  1. com.google.auth.Credentials 인수 소요되지이다 com.google.api.client.auth.oauth2.Credential로부터 상속 GoogleCredential있다.

다음 시도 : Using OAuth 2.0 with the Google API Client Library for Java

그것은 나를 GoogleCrendential을 포장하기 위해 Plus를 사용하여 조언 : 예를 들어 구글. 그러나 Plusdeprecated과 섹션의 ServiceAccounts에 나타낸 바와 같이, 심지어 해당 페이지에 주제 GoogleCredential 같이하는 방법

builder(new NetHttpTransport(), JacksonFactory.getDefaultInstance(), credential)

,도 방법

Plus.Builder(httpTransport, jsonFactory, credential) 
    .setApplicationName(APPLICATION_NAME).build(); 

중 하나 포함되어 있지 않습니다 그 페이지.

rpc 메서드를 호출하는 데 사용되는 SpeechGrpc.SpeechStub 클래스로 옵션이 부족하여 작동하려면 ManagedChannel이 필요합니다. 이것이 가능하다면, 내가 알고 싶습니다

타 옵션은 어쩌면 방법

SpeechGrpc.newStub(channel).withCallCredentials(CallCredentials creds)

통해 ManagedChannelSpeechGrpc.SpeechStub하지에 자격 증명을 추가 할 수 있었다, 나는 CallCredentials을 만드는 방법 서비스 계정의 authkey.json 파일에서

나는 지난 주 이내에 찾을 수있는이 주제에 대한 모든 예제, Google 문서 및 스레드를 읽었지만이 인증이 작동하지 않습니다.

나는이 혼란스러운 Google API 및 라이브러리 문제에서 나를 도울 수있는 사람이되기를 바랍니다.

+0

이 공개 인 경우 서비스 계정과의 OAuth를 사용하려면 어떤 특별한 이유 api를 사용하면 api 키를 사용할 수 있습니까? – DaImTo

+0

API는 공개되어 있습니다. 그렇지만 스트리밍 유스 케이스의 경우 계정에 비용을 지불해야합니다. 모든 문서에서 oauth (). 나에게 내가 사용하는 인증은 중요하지 않습니다. 당신은 API 키 방법으로 일하는 해결책을 가지고 있습니까? –

+0

API가 귀하의 계정을 식별합니다. Oauth는 개인 데이터에 액세스하기위한 것입니다. – DaImTo

답변

0

안녕하세요. 코드를 시작하기 전에 한 줄을 추가하면됩니다. google-doc-sample의 경우 main() 메소드의 첫 번째 행에 추가하십시오.

GoogleCredentials.fromStream (새 FileInputStream());

또한이 링크를 참조하십시오. https://github.com/google/google-auth-library-java

0.6.0 릴리스 구글이 아래에 자신의 인증을 이동 한 후 :

구글 - 인증 - 라이브러리 OAuth2를-HTTP