回答:
ドキュメントの現在のバージョンをダウンロードする場合は、ブラウザー(Firefox)の[ダウンロード]ウィンドウでダウンロードを右クリックし、URLをコピーします。次に&revision=NNN
、この新しいURLをブラウザのアドレスバーに追加して貼り付け、Enterキーを押します。その特定のリビジョンをダウンロードします。
したがって、残っている唯一の演習は、使用する必要があるリビジョンIDを見つけることです。
これを行うには、developers.google.comの改訂リストにアクセスして [ 今すぐ試す ]をクリックし、ドキュメントのfileIdを入力します。これは、docs.google.com/document/d/
編集中にブラウザのURLバーの次のスラッシュとその間にある文字と数字の長い文字列ですドキュメント。以前にコピーしたダウンロードURLにも表示されます。それをAPIエクスプローラーページのfileIdに貼り付けて、Authorizeを実行します。
応答までスクロールダウンし、modifiedTimeを確認して、idフィールドから正しい数値を選択します。次に、その番号を使用してドキュメントをダウンロードします。最終URLは次のようになります。
docs.google.com/document/u/0/d/XXXX/export?format=docx&revision=NNN
XXXX
fileIdはどこにあり、NNN
リビジョン番号です。
nextPageToken
は、JSON応答の最上部を探してください。この値をpageToken
フィールドに入力して、再度実行します。これにより、より多くのリビジョンIDを持つ新しいJSONレスポンスが提供されます。目的のリビジョンIDが見つかるまで、これを繰り返します。
fhackenbergerの答えを自動化する:
#!/usr/bin/env ruby
require 'json'
require 'active_support/core_ext/date' # required for timezone calculation; gem install activesupport
# require 'byebug'
# ========
## inputs:
jsonFile = 'revisions.json' # file with json response obtained from https://developers.google.com/drive/v3/reference/revisions/list#try-it
docId = 'you doc id' # e.g.: M67keINXrkCAPy9HyGEgyM5Q175yFM8byQeM953alao3
dateStartsWith = 'May 30'
format = 'xlsx' # xlsx or docx
timezone = 'Moscow' # list all timezones: ruby -e "require 'active_support/core_ext/date'; puts ActiveSupport::TimeZone.all.map(&:name)"
# =========
## program:
jsonString = File.read(jsonFile)
jsonData = JSON.parse(jsonString)
# add local time stamps:
jsonData['revisions'].each { |rev| rev["localTimeStamp"] = Time.parse(rev["modifiedTime"]).in_time_zone(timezone).strftime("%b %e, %k:%M:%S %p, %Y") }
if format == 'xlsx'
type = 'spreadsheets'
else
format = 'docx'
type = 'document'
end
revs = jsonData['revisions'].select {|rev| rev["localTimeStamp"].start_with?(dateStartsWith) }.each { |rev| rev["link"] = "https://docs.google.com/#{type}/u/0/d/#{docId}/export?format=#{format}&revision=#{rev['id']}" }
puts JSON.pretty_generate(revs)
それでも、どういうわけか、すべてではなく、いくつかのリビジョンのみを取得します。