2013-01-21 3 views
2

다트가있는 Google 드라이브에서 기본 텍스트 파일 (승인 필요 없음)을 읽으려고합니다. 아래 코드는 400 오류를 반환합니다. API_KEY가 제거되면 403 오류가 발생합니다. 파일 ID를 Google get 파일 참조 페이지에 입력 할 수 있으며 메타 데이터가 올바르게 반환됩니다.다트로 간단한 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(); 

답변

6

가장 좋은 방법은 drive_v2_api_client를 사용하는 것입니다.

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

이 그런 다음 pubspec.yaml 파일에 다음 depenencies으로 바꾸어 다트 드라이브 패키지 drive_v2_api_client를 사용 DartEditor

와 로컬 호스트 테스트를 위해 다음과 같은 설정으로 구글 콘솔 API를 설정하여 수행 할 수 있습니다.

이 예에서는 클라이언트가 클라이언트 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()); 
     }); 

    }); 
    }); 
} 

현재 작동 예를 https://gist.github.com/4588427

+0

"콘솔 API에서 클라이언트 ID가"무엇에 대한 모든 소스 코드를 찾을 수 있습니까? – citykid

+0

Google apis 콘솔 https://code.google.com/apis/console/에서 가져옵니다. –

관련 문제