java - java.io.IOException:无法创建目录:/tokens Google Sheet API
问题描述
我终于按照 google sheet quickstart 完成了示例应用程序。现在我想调用 API 来创建工作表,但是,错误显示:
java.io.IOException: unable to create directory: /tokens
2020-09-19 01:27:53.967 9027-9097/com.yichuchen.phonecallreminder W/System.err: at com.google.api.client.util.store.FileDataStoreFactory.<init>(FileDataStoreFactory.java:71)
2020-09-19 01:27:53.967 9027-9097/com.yichuchen.phonecallreminder W/System.err: at com.yichuchen.phonecallreminder.SheetsQuickstart.getCredentials(SheetsQuickstart.java:58)
这是这部分代码无法创建目录:
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
.setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
.setAccessType("offline")
.build();
我尝试过: Android 在使用谷歌日历 api 时给 IOException 提供“无法创建目录:/tokens”
但显示错误:
package android.os does not exist
import android.os.Environment;
permission.READ_EXTERNAL_STORAGE,
permission.WRITE_EXTERNAL_STORAGE
这是我调用 quickstart.class 的函数
public void createSheet() throws GeneralSecurityException, IOException {
SheetsQuickstart sheetsQuickstart = new SheetsQuickstart();
Sheets service = new Sheets.Builder(HTTP_TRANSPORT, JSON_FACTORY, sheetsQuickstart.getCredentials(HTTP_TRANSPORT))
.setApplicationName("PhoneCallReminder")
.build();
Spreadsheet spreadsheet = new Spreadsheet()
.setProperties(new SpreadsheetProperties()
.setTitle("Test"));
spreadsheet = service.spreadsheets().create(spreadsheet)
.setFields("spreadsheetId")
.execute();
System.out.println("Spreadsheet ID: " + spreadsheet.getSpreadsheetId());
}
这是我的项目和应用程序结构,在sheetquickstart.java
应用程序之外,对吗?我package com.yichuchen.phonecallreminder;
在第一行输入了我的应用程序可以调用的类。
提前致谢。
解决方案
推荐阅读
- java - 如果有任何重复的键,如何将键的值添加到哈希图中的另一个键
- javascript - using API and Promise with angular-modal-gallery
- ios - Xamarin.ios 点击屏幕时关闭 UIAlertController ActionSheet
- c# - 使用 Google API 异常创建联系人 - 写入访问被拒绝
- node.js - 如何在频繁命中 node.js 路由的 setInterval 中进行轮询
- java - Spring 集成中使用 Http 出站网关的错误处理
- swt - java - 如何在java RCP的jface表中拖放多行?
- django - 为什么我需要在 Django 中将 kwargs 设置为 CBV 的参数
- python - Python:按条件按总和分组
- hashmap - 将 maxmind mmbd 作为 hashmap 加载到内存中的性能差异