【发布时间】:2018-07-21 15:32:42
【问题描述】:
我尝试使用 google sheet API v4 创建新工作表。我成功创建它。但是,我发现工作表正在设置,因为我是唯一能够访问的人。我的目标是让拥有 url 链接的用户可以在 Java 请求中访问工作表。
我尝试在创建电子表格时将谷歌凭据设置为空,但它用于在驱动器中创建电子表格。因此,这是行不通的。 我浏览它的库类和 api,但我找不到与权限相关的任何内容。
我不太确定我创建电子表格的方式是否正确。这是我的代码:
public class CreateSpreadSheetTask extends AsyncTask<Void, Void, Void> {
private com.google.api.services.sheets.v4.Sheets mService = null;
private Exception mLastError = null;
private String title = null;
private CreateSpreadsheetListener listener = null;
public CreateSpreadSheetTask(GoogleAccountCredential credential, String title, CreateSpreadsheetListener listener) {
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
mService = new Sheets.Builder(
transport, jsonFactory, credential)
.setApplicationName("Google Sheets API Android Quickstart")
.build();
this.title = title;
this.listener = listener;
}
@Override
protected Void doInBackground(Void... params) {
try {
this.listener.onRecvCreateSpreadsheet(getSpreadsheetFromApi());
} catch (Exception e) {
e.printStackTrace();
mLastError = e;
cancel(true);
}
return null;
}
private Spreadsheet getSpreadsheetFromApi() throws IOException {
Spreadsheet spreadsheet = new Spreadsheet();
SpreadsheetProperties properties = new SpreadsheetProperties();
properties.setTitle(this.title);
spreadsheet.setProperties(properties);
Sheets.Spreadsheets.Create request = mService.spreadsheets().create(spreadsheet);
return request.execute();
}
}
【问题讨论】:
-
使用 Drive REST API 共享文档/将其公开。 Drive 的文件 ID 与 Sheets API 在来自
Create的响应中为您提供的spreadsheetId相同。
标签: java android google-sheets google-sheets-api