对我来说,以下的作品,(使用HTTP包
get和
post)
验证令牌
您可以从返回的accoutn中检索auth令牌
signIn。
Future<String> _getAuthToken() async { final account = await sign_in_options.signIn(); if (account == null) { return null; } final authentication = await account.authentication; return authentication.accessToken;}搜索
要在AppData目录中搜索文件,您需要添加
spacesqueryParameters并将其设置为
appDataFolder。该文档在这方面有点误导。
final Map<String, String> queryParameters = { 'spaces': 'appDataFolder', // more query parameters};final headers = { 'Authorization': 'Bearer $authToken' };final uri = Uri.https('www.googleapis.com', '/drive/v3/files', queryParameters);final response = await get(uri, headers: headers);上载
要上传文件,您需要为初始上传请求设置正文的
parentsto
appDataFolder属性。要下载文件,您只需要fileId。
final headers = { 'Authorization': 'Bearer $authToken' };final initialQueryParameters = { 'uploadType': 'resumable' };final Map<String, dynamic> metaData = { 'name': fileName, 'parents': ['appDataFolder ']};final initiateUri = Uri.https('www.googleapis.com', '/upload/drive/v3/files', initialQueryParameters);final initiateResponse = await post(initiateUri, headers: headers, body: json.enpre(metaData));final location = initiateResponse.headers['location'];下载
要下载文件,您只需要知道
fileId,如果您不知道,则需要使用搜索API进行检索(请参见上文)。
final headers = { 'Authorization': 'Bearer $authToken' };final url = 'https://www.googleapis.com/drive/v3/files/$fileId?alt=media';final response = await get(url, headers: headers);


