Скриптик выглядит как-то так:
А теперь, как принято, разоблачение.
#!/bin/bash
token=$(curl -s www.google.com/accounts/ClientLogin -d Email=user.name@gmail.com -d Passwd=qwerty -d accountType=GOOGLE -d service=writely -d Gdata-version=3.0 |cut -d "=" -f 2)
set $token
curl --silent --header "Gdata-Version: 3.0" --header "Authorization: GoogleLogin auth=$3" "http://docs.google.com/feeds/user.name@gmail.com/private/full" | tidy -xml -indent -utf8 -quiet > /tmp/gdocs.xml
file=(doc1 doc2 doc3 doc4)
resourceId=(document:0ASpnxqo7zPlfZGQ3Z2Zwc183NWZteDNiM2Y ...) # и ещё 3 resourceId
i=0
while (( i < 4 )) # match num_files
do
wget --header "Gdata-Version: 3.0" --header "Authorization: GoogleLogin auth=$3" "https://docs.google.com/feeds/download/documents/Export?docID=${resourceId[$i]}&exportFormat=txt" -O /tmp/${file[$i]}.txt
sleep 2
i=$i+1
done
А теперь, как принято, разоблачение.
- Первой строкой получаем жетон аутентификации. Далее его предъявляем для скачивания RSS потока, который сохраняем в файл. Далее из него берём resourceId и скачиваем доки. Тут следует сделать оговорку, что resourceId берётся «вручную» из сохраненного RSS файла. Можно, конечно, и это автоматизировать, но если документов не много то и раздувать скрипт не обязательно.
- Ссылка для скачивания доков:
GET /feeds/download/documents/Export?docID=resource_id&exportFormat=format
- service=writely. Список наименований кодов Гугло-сервисов берется отсюда.
- resourceId ключевое элемент. Это идентификатор дока. Его берём из RSS потока скачанного в файл /tmp/gdocs.xml. Релевантные тэги выглядят так и находятся в той же записи где название доки.
<gd:resourceId>
document:0ASpnxqo7zPlfZGQ3Z2Zwc183Zzc3NnZkY2g</gd:resourceId>
- exportFormat=txt. Можно выбрать и другие форматы для скачивания. Список тут.