2

JavaScriptアプリケーションからスプレッドシートドキュメントのコンテンツを取得しようとしています。ただし、からの応答に'/drive/v2/files/' + documentIdは「downloadUrl」プロパティがありません。

私のコードは次のとおりです。

var apiKey, clientId, documentId, scopes;

documentId = "XXXXXXXXXX";
clientId = 'XXXXXXXXXXXXX.apps.googleusercontent.com';
apiKey = 'XXXXXXXXXXXXXXXXXXXXXXXX';

scopes = 'https://www.googleapis.com/auth/drive';

window.OnLoadCallback = function() {
  console.log("google client loaded!");
  gapi.client.setApiKey(apiKey);
  return window.setTimeout(checkAuth, 1);
};

window.checkAuth = function() {
  return gapi.auth.authorize({
    client_id: clientId,
    scope: scopes,
    immediate: true
  }, function(e) {
    console.log("authorized!");
    return gapi.client.request({
      'path': '/drive/v2/files/' + documentId,
      'method': 'GET',
      callback: function(theResponseJS, theResponseTXT) {
        var downloadUrl, myToken, myXHR;
        console.log(theResponseJS);
        console.log(theResponseJS.downloadUrl); //is missing

        myToken = gapi.auth.getToken();
        myXHR = new XMLHttpRequest();
        myXHR.open('GET', theResponseJS.downloadUrl, true);
        myXHR.setRequestHeader('Authorization', 'Bearer ' + myToken.access_token);
        myXHR.onreadystatechange = function(theProgressEvent) {
          if (myXHR.readyState === 4) {
            if (myXHR.status === 200) {
              return console.log(myXHR.response);
            }
          }
        };
        return myXHR.send();
      }
    });
  });
};

私は何が間違っているのですか?

ありがとうございました!

4

1 に答える 1

4

Google doc ファイルには、内部/独自の形式がいくつかあり、直接アクセスできないようです。唯一のオプションは、「exportLinks」コレクションを介して、Google ドキュメントを他の適切に定義されたドキュメント タイプに変換することです。

于 2012-08-15T15:52:41.147 に答える