Set*_*eth 2 dart google-drive-api
我试图从谷歌驱动器Dart读取基本文本文件(无需授权).下面的代码返回400错误.如果删除API_KEY则会出现403错误.我可以将文件ID输入到Google get file参考页面,它将正确返回元数据.
任何想法都会很棒.谢谢
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();
Run Code Online (Sandbox Code Playgroud)
最好的办法是使用drive_v2_api_client.
这可以通过使用DartEditor进行localhost测试的以下设置来设置您的谷歌控制台apis来完成
Redirect URIs: http://127.0.0.1:3030/oauth2callback
JavaScript origins: http://127.0.0.1:3030
Run Code Online (Sandbox Code Playgroud)
然后通过在pubspec.yaml文件中添加以下依赖项来使用dart驱动包drive_v2_api_client.
dependencies:
drive_v2_api_client:
git: git://github.com/Scarygami/dart_drive_v2_api_client.git
Run Code Online (Sandbox Code Playgroud)
此示例允许客户端在客户端使用客户端ID进行身份验证后获取fileid.
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());
});
});
});
}
Run Code Online (Sandbox Code Playgroud)
您可以在https://gist.github.com/4588427找到工作示例的所有源代码
| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |