gpt4 book ai didi

java - 如何使用服务帐户创建 Google 电子表格并共享给 java 中的其他 google 用户?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:22 25 4
gpt4 key购买 nike

我有一个应用程序,我使用 Google 服务帐户 从 Analytics API 收集有关我网站的大量信息。我的下一步是使用服务帐户创建电子表格并与几个用户共享文档。

我已经在 https://developers.google.com/google-apps/spreadsheets/ 查看了文档但我在那里找不到有关服务帐户和共享文档的任何信息。

所以我的第一个问题是这可能吗?如果不是,我是否需要实现文档中举例说明的“使用我的个人帐户”?如果是,能否请您提供一个示例?

谢谢!

最佳答案

这是可能的,请看下面的例子(这个例子确实需要一些调整):

创建驱动服务:

   GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT).setJsonFactory(JSON_FACTORY)
.setServiceAccountId(confBean.getServiceAccountId()).setServiceAccountScopes("https://www.googleapis.com/auth/drive")
.setServiceAccountPrivateKeyFromP12File(new File("path to the P12File"))
.setServiceAccountUser("user@domain.com")
.build();

Drive drive = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).build();

创建电子表格:

  com.google.api.services.drive.model.File  file = new com.google.api.services.drive.model.File();
file.setTitle("test");
file.setMimeType("application/vnd.google-apps.spreadsheet");
Insert insert = this.drive.files().insert(file);
file = insert.execute();

创建电子表格服务:

GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT).setJsonFactory(JSON_FACTORY)
.setServiceAccountId(confBean.getServiceAccountId()).setServiceAccountScopes("https://spreadsheets.google.com/feeds")
.setServiceAccountPrivateKeyFromP12File(new File("path to the P12File"))
.setServiceAccountUser("user@domain.com")
.build();
SpreadsheetService service = new SpreadsheetService("MySpreadsheetIntegration-v1");
service.setOAuth2Credentials(credential);

检索工作表:

SpreadsheetService s = googleConn.getSpreadSheetService();
String spreadsheetURL = "https://spreadsheets.google.com/feeds/spreadsheets/" + file.getId();
SpreadsheetEntry spreadsheet = s.getEntry(new URL(spreadsheetURL), SpreadsheetEntry.class);

添加数据:

WorksheetFeed worksheetFeed = s.getFeed(spreadsheet.getWorksheetFeedUrl(), WorksheetFeed.class);
List<WorksheetEntry> worksheets = worksheetFeed.getEntries();
WorksheetEntry worksheet = worksheets.get(0);

URL cellFeedUrl= worksheet.getCellFeedUrl ();
CellFeed cellFeed= s.getFeed (cellFeedUrl, CellFeed.class);

CellEntry cellEntry= new CellEntry (1, 1, "aa");
cellFeed.insert (cellEntry);

另请参阅相关的 question

关于java - 如何使用服务帐户创建 Google 电子表格并共享给 java 中的其他 google 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13229294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com