Google Cloud Platform发布/订阅发布者,如何提供默认应用程序凭据以外的凭据 - java

使用com.google.cloud.google-cloud库(http://googlecloudplatform.github.io/google-cloud-java/0.21.1/index.html),我具有以下Google Cloud Platform发布/订阅代码:

    TopicName topicName = TopicName.create("projectId...", "topic...");
    Publisher pub = Publisher.defaultBuilder(topicName).build();

如何提供发布者要使用的凭据?我已经将它们存储在内存中,因为通过其他方式(而不是将其硬编码到文件中)进行配置。

使用自定义凭据的所有示例如下:

Storage storage = StorageOptions.newBuilder()
    .setProjectId(PROJECT_ID)
    .setCredentials(GoogleCredentials.fromStream(
    new FileInputStream(PATH_TO_JSON_KEY))).build();
Bucket bucket = storage.create(BucketInfo.of("myBucketName"));

但是没有PubSubOptions或PublisherOptions类来编写类似的代码(我将FileInputStream替换为ByteArrayInputStream)。

这是一个有相同问题但代码示例不起作用的人:https://github.com/GoogleCloudPlatform/google-cloud-java/issues/1751

参考方案

您可以在构建器上设置凭证提供者:

GoogleCredentials credentials = GoogleCredentials.fromStream(
    new FileInputStream(PATH_TO_JSON_KEY)));
Publisher pub = Publisher
    .defaultBuilder(topicName)
    .setCredentialsProvider(FixedCredentialsProvider.create(credentials))
    .build();

现在,这将设置所使用的CallSettings ...,但我认为它不会设置在设置频道本身时使用的凭据。 (看起来Java gRPC代码和我更熟悉的C#代码之间可能存在差异。)

使用Appengine开发服务器测试邮件(java) - java

我正在使用javamail从我的appengine应用程序发送邮件。它在部署中可以完美地工作,但是我不知道如何使用开发服务器来做到这一点。每当我需要测试sendmail时,就必须部署非常烦人的应用程序。 背景信息(为什么日志不起作用):我们知道电子邮件会转到appengine开发服务器上的日志。但是,想要从开发服务器发送电子邮件的主要原因是能够测试电子邮件的…

Google Drive API访问我自己的帐户 - java

我希望在服务器/笔记本电脑上运行一个简单的过程,每天将文件每天上传一次到Google驱动器中。我不想分享此信息,不允许其他用户使用它等。我发现的所有示例似乎都涉及浏览到一个地址以获得用户(我)的许可,然后获取身份验证代码等并继续参考:Java quickstart有没有一种方法/示例可以做到这一点而无需浏览器,每次我只想为自己的帐户获得许可时都获得唯一的身份…

Google Calendar API未收到确认响应 - java

我们已经在Java中完成了Google Calendar API的集成,我们能够发送会议请求,并且与会者可以接收该请求。但是,当与会者单击邮件中的“是”或“否”按钮时,响应存在一些问题,组织者将无法获得响应。问题是,当与会者试图接受或拒绝会议时,组织者没有得到回应。 java参考方案 我怀疑您尚未在事件上设置推送notifications,然后将通知您更改并…

Google Ads中断了该应用程序。放慢fps - java

我使用AdView mAdView和最后更新的库。我将AdView放入布局中(如示例所示):<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto" android:id="@+id/adView"…

Google Collections-来自collections.filter的可修改迭代器? - java

从Collections2.filter返回的集合是不可修改的,其迭代器也是如此。是否有类似的东西可以返回我经过过滤的集合实时视图,但是具有可修改的迭代器?我需要在迭代器上使用remove()方法。谢谢。 参考方案 new ArrayList(Collections2.filter(...))怎么样?如果出于某种原因坚持使用过滤器。顺便说一句,Collect…