gpt4 book ai didi

dart - 使用 Dart 进行简单的 Google 云端硬盘访问

转载 作者:行者123 更新时间:2023-12-04 19:59:04 26 4
gpt4 key购买 nike

我正在尝试使用 Dart 从谷歌驱动器读取基本文本文件(无需授权)。下面的代码返回 400 错误。如果 API_KEY 被删除,则会出现 403 错误。我可以将文件 ID 输入到 Google 获取文件引用页面,它会正确返回元数据。

任何想法都会很棒。谢谢

final url = "https://www.googleapis.com/drive/v2/files/FILE?key={API_KEY}";

var request = new HttpRequest();

request.on.loadEnd.add( (Event e)
{
if (request.status == 200)
{
var data = JSON.parse(request.responseText);
query("#file").text = data;
}
else
{
query("#file").text = "Error ${request.status}: ${request.statusText}";
}
});

request.open("GET", url);
request.send();

最佳答案

最好的办法是使用 drive_v2_api_client。

这可以通过使用 DartEditor 进行本地主机测试的以下设置来设置您的 google console api 来完成

Redirect URIs:  http://127.0.0.1:3030/oauth2callback
JavaScript origins: http://127.0.0.1:3030

然后通过将以下依赖项放入 pubspec.yaml 文件中来使用 dart 驱动程序包 drive_v2_api_client。

dependencies:
drive_v2_api_client:
git: git://github.com/Scarygami/dart_drive_v2_api_client.git

此示例允许客户端在客户端使用客户端 ID 进行身份验证后获取文件 ID。

import 'dart:html';
import 'dart:json';
import "package:drive_v2_api_client/drive_v2_api_client.dart" as drivelib;
import "package:google_oauth2_client/google_oauth2_client.dart";

final CLIENT_ID = "<YOUR CLIENT ID FROM CONSOLE API>";
final SCOPES = [drivelib.Drive.DRIVE_FILE_SCOPE];

void main() {
var fileid = "1B_cGCNFjnK3dDriTMLsSS_zExfGFkQeewb3dcP4xSPg";
var auth = new OAuth2(CLIENT_ID, SCOPES);
var drive = new drivelib.Drive(auth);
drive.makeAuthRequests = true;
var loginButton = query("#login");
var output = query("#text");

loginButton.on.click.add((Event e) {
auth.login().then((token) {
output.appendHtml("Got Token ${token.type} ${token.data}<br><br>");

drive.files.get(fileid)
..then((data) {
output.appendHtml(data.toString());
});

});
});
}

您可以在此处找到工作示例的所有源代码 https://gist.github.com/4588427

关于dart - 使用 Dart 进行简单的 Google 云端硬盘访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14443108/

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