1

私は、google-apis の nodejs ドキュメントを読むのに苦労しています。例のかなり長いリストを集めましたが、それらのどれもがやりたいことをするのに役立ちます。ノードjsを使用してドライブからファイルをダウンロードしたいだけです。

OAUTH を設定し、このコードを使用してアクセス トークンを取得します (ソース: http://masashi-k.blogspot.com.es/2013/07/accessing-to-my-google-drive-from-nodejs. html )

var googleDrive = require('google-drive');
var GoogleTokenProvider = require("refresh-token").GoogleTokenProvider,
    async = require('async'),
    request = require('request'),
    _accessToken;

var tokenProvider = new GoogleTokenProvider({
  'refresh_token': REFRESH_TOKEN,
  'client_id' : CLIENT_ID,
  'client_secret': CLIENT_SECRET
});


tokenProvider.getToken(function(err, access_token) {
  console.log("Access Token=", access_token);
  _accessToken = access_token;
});

しかし、ここから先をどう進めていいのかわからない。私は運がないので、このようなことを試しました:

function listFiles(token, callback) {
  googleDrive(token).files().get(callback)
}

function callback(err, response, body) {
  if (err) return console.log('err', err)
  console.log('response', response)
  console.log('body', JSON.parse(body))
}

listFiles(_accessToken,callback);

とても近くにいるような気がしますが、ここで助けが必要です。

前もって感謝します。

4

2 に答える 2

2

ダウンロードする内容に応じて、2 つの方法があります。ネイティブの Google Doc ファイルと通常のファイルのダウンロードには大きな違いがあります。

  • ドキュメントは API メソッドを使用してダウンロードする必要がありfiles.export、ドキュメントを変換するための適切な MIME タイプを提供します。
  • 通常のファイルはfiles.getメソッドを使用してダウンロードでき、メタデータの代わりにファイルデータをダウンロードする場合は正しいフラグを提供します

GoogleApis NodeJS ライブラリ ( https://github.com/google/google-api-nodejs-client )を使用することをお勧めします

ドライブ API の初期化:

var Google = require('googleapis');
var OAuth2 = Google.auth.OAuth2;

var oauth2Client = new OAuth2('clientId','clientSecret','redirectUrl');
oauth2Client.setCredentials({
  access_token: 'accessTokenHere'
  refresh_token: 'refreshTokenHere'
});

var drive = Google.drive({
  version: 'v3',
  auth: this.oauth2Client
});

ファイルのインポート:

drive.files.get({
  fileId: fileId,
  alt: 'media' // THIS IS IMPORTANT PART! WITHOUT THIS YOU WOULD GET ONLY METADATA
}, function(err, result) {
  console.log(result); // Binary file content here
});

ネイティブ Google ドキュメントのエクスポート (変換には MIME タイプを指定する必要があります):

drive.files.export({
  fileId: fileId,
  mimeType: 'application/pdf' // Provide mimetype of your liking from list of supported ones
}, function(err, result) {
  console.log(result); // Binary file content here
});

多分それは長い時間の後に誰かを助けるでしょう;)

于 2016-01-29T10:51:46.703 に答える
0

https://github.com/google/google-api-nodejs-clientで、Google API 用に公式にサポートされている NodeJS クライアント ライブラリをご覧ください。

ドライブからファイルを取得するために必要なコードは、ファイルを Google ドライブに挿入するために使用される README の下部にあるコードと似ています。API Explorer を使用して、API に対するパラメーターをテストすることもできます: https://developers.google.com/apis-explorer/#p/drive/v2/drive.files.get

Google ドライブからファイルを取得する呼び出しの例を次に示します。

client
  .drive.files.get({ fileId: 'xxxx' })
  .execute(function(err, file) {
  // do something with file here
});
于 2014-05-21T05:47:14.403 に答える