Google API-Android BigQuery客户端的应用级授权

凯文

我已经在Google API中设置了一个与BigQuery一起使用的项目。我已经生成了客户端ID凭据,并且正在使用Android的BigQuery客户端。

    GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(getApplicationContext(), Collections.singleton(BigqueryScopes.BIGQUERY));

    ...Display User Picker...

    credential.setSelectedAccountName("[email protected]");
    Bigquery bigQuery = new Bigquery.Builder(AndroidHttp.newCompatibleTransport(), GsonFactory.getDefaultInstance(), credential)
                    .setApplicationName("My-App/1.0").build()

    ...use bigQuery to run a job or do whatever...

我们可以成功连接到BigQuery,但只能连接到项目成员帐户,如https://console.developers.google.com/project/apps~my-project-name/permissions所示使用其他帐户会导致BigQuery Client出现403拒绝访问JSON错误。

该应用程序将被部署到我们不知道其帐户提前的任何数量的用户。除非我缺少一些技巧,否则此工作流不支持该方法。

好像我们需要设置App Engine应用,使用GoogleAccountCredential.usingAudience以及将Web服务设置为BigQuery的传递一样。

任何想法或想法都将受到投票支持。

凯文

这可以通过使用通常用于服务器到服务器通信的服务帐户来完成。

按照https://developers.google.com/bigquery/docs/authorization#service-accounts-server上的说明进行操作

GoogleCredential credential = new GoogleCredential.Builder().setTransport(TRANSPORT)
    .setJsonFactory(JSON_FACTORY)
    .setServiceAccountId("[email protected]")
    .setServiceAccountScopes(SCOPE)
    .setServiceAccountPrivateKeyFromP12File(new File("my_file.p12"))
    .build();

bigquery = new Bigquery.Builder(TRANSPORT, JSON_FACTORY, credential)
    .setApplicationName("BigQuery-Service-Accounts/0.1")
    .setHttpRequestInitializer(credential).build();

将p12文件保存到资产文件夹,并从Asset中的p12文件的InputStream生成物理File对象。

这样,您可以让您的Android应用程序充当BigQuery的非用户中心客户端。太棒了!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google API PHP客户端授权

来自分类Dev

每秒进行多个调用时,对于Google BigQuery调用的Google API客户端,授权失败,并错误403错误

来自分类Dev

Google API客户端ID未授权

来自分类Dev

Android Google API客户端未连接

来自分类Dev

Android客户端和Google App Engine API

来自分类Dev

使用Python客户端的Google BigQuery API

来自分类Dev

如何使用Google API客户端在Google Map Android中显示我当前的位置

来自分类Dev

Google API Python authenticated_client:未经授权的客户端或请求范围

来自分类Dev

从Google Calendar API v2迁移到v3-客户端授权

来自分类Dev

无法在Android Studio中解析Symbol Google API客户端

来自分类Dev

客户端和程序包之间的Google Maps Android API不匹配

来自分类Dev

如何在Qt的Android客户端代码中调用Google-Cloud-Messaging API?

来自分类Dev

连接到 Google API 客户端时 Android Activity Lifecycle 的奇怪行为

来自分类Dev

Google API客户端的多个实例?

来自分类Dev

Google API客户端和Cronjob

来自分类Dev

Google Api Java客户端列表根文件夹子级

来自分类Dev

Android:Google Maps Android API:授权失败

来自分类Dev

您是否需要为客户端应用程序使用Google Maps API的API密钥?

来自分类Dev

使用适用于Android的Youtube的Google API Java客户端从Android服务访问YouTube数据

来自分类Dev

无法从Android客户端调用API

来自分类Dev

使用现有访问令牌通过Google的gapi库进行的授权客户端JS API调用?

来自分类Dev

如何在没有客户端库的情况下在 PHP 中授权访问 Google Cloud Storage API?

来自分类Dev

将应用程序部署到Google App Engine,并希望启动api和客户端

来自分类Dev

如何将Google API Javascript客户端库加载到Chrome应用中

来自分类Dev

Google API客户端GTMHTTPUploadFetcher已重复

来自分类Dev

Google Cloud Datastore API的Objective-C客户端?

来自分类Dev

Google API PHP客户端-联系人服务

来自分类Dev

Google API客户端连接后开始活动

来自分类Dev

什么定义了Google API刷新令牌的客户端/用户对?

Related 相关文章

  1. 1

    Google API PHP客户端授权

  2. 2

    每秒进行多个调用时,对于Google BigQuery调用的Google API客户端,授权失败,并错误403错误

  3. 3

    Google API客户端ID未授权

  4. 4

    Android Google API客户端未连接

  5. 5

    Android客户端和Google App Engine API

  6. 6

    使用Python客户端的Google BigQuery API

  7. 7

    如何使用Google API客户端在Google Map Android中显示我当前的位置

  8. 8

    Google API Python authenticated_client:未经授权的客户端或请求范围

  9. 9

    从Google Calendar API v2迁移到v3-客户端授权

  10. 10

    无法在Android Studio中解析Symbol Google API客户端

  11. 11

    客户端和程序包之间的Google Maps Android API不匹配

  12. 12

    如何在Qt的Android客户端代码中调用Google-Cloud-Messaging API?

  13. 13

    连接到 Google API 客户端时 Android Activity Lifecycle 的奇怪行为

  14. 14

    Google API客户端的多个实例?

  15. 15

    Google API客户端和Cronjob

  16. 16

    Google Api Java客户端列表根文件夹子级

  17. 17

    Android:Google Maps Android API:授权失败

  18. 18

    您是否需要为客户端应用程序使用Google Maps API的API密钥?

  19. 19

    使用适用于Android的Youtube的Google API Java客户端从Android服务访问YouTube数据

  20. 20

    无法从Android客户端调用API

  21. 21

    使用现有访问令牌通过Google的gapi库进行的授权客户端JS API调用?

  22. 22

    如何在没有客户端库的情况下在 PHP 中授权访问 Google Cloud Storage API?

  23. 23

    将应用程序部署到Google App Engine,并希望启动api和客户端

  24. 24

    如何将Google API Javascript客户端库加载到Chrome应用中

  25. 25

    Google API客户端GTMHTTPUploadFetcher已重复

  26. 26

    Google Cloud Datastore API的Objective-C客户端?

  27. 27

    Google API PHP客户端-联系人服务

  28. 28

    Google API客户端连接后开始活动

  29. 29

    什么定义了Google API刷新令牌的客户端/用户对?

热门标签

归档