使用API​​密钥在Android上通过GRPC验证Google Cloud Speech

dao*_*udc 4 android google-cloud-speech

我已经设法通过GRPC使用流媒体模式的服务帐户为我的Android应用程序运行Google Cloud Speech.但是,根据我所读到的内容,出于安全原因,我不应该在其中部署具有这些凭据的Android应用程序(当前存储为资源中的JSON文件).正确的做法是创建API密钥,如下所述:https://cloud.google.com/speech/docs/common/auth

这允许我限制对我的特定Android应用的访问.但是,我一直无法找到如何使用GRPC的API密钥.我正在GoogleCredentials从JSON文件创建一个实例,这很好.如何从API密钥获取凭证对象?

小智 8

您可以使用API​​密钥尝试此操作

Metadata.Key<String> API_KEY = Metadata.Key.of("x-goog-api-key", Metadata.ASCII_STRING_MARSHALLER);

Metadata apiKeyMetadata = new Metadata();
apiKeyMetadata.put(API_KEY, yourApiKey);

final ManagedChannel channel = new OkHttpChannelProvider()
    .builderForAddress(HOSTNAME, PORT)
    .nameResolverFactory(new DnsNameResolverProvider())
    .intercept(MetadataUtils.newAttachHeadersInterceptor(apiKeyMetadata))
    .build();
speechStub = SpeechGrpc.newStub(channel);
Run Code Online (Sandbox Code Playgroud)