Ich würde gerne die Diskussionsliste einer privaten Google-Gruppe abrufen. Es handelt sich um eine mehrseitige Liste, und ich muss sie vielleicht später noch einmal abrufen, also bietet sich ein Skript an.
Da es sich um eine private Gruppe handelt, muss ich mich zuerst in meinem Google-Konto anmelden. Leider schaffe ich es nicht, mich mit wget oder ruby Net::HTTP einzuloggen. Überraschenderweise ist google groups nicht zugänglich mit dem Client Login Schnittstelle Daher sind alle Codebeispiele nutzlos.
Mein Ruby-Skript ist am Ende des Beitrags eingebettet. Die Antwort auf die Authentifizierungsanfrage ist ein 200-OK, aber keine Cookies in den Kopfzeilen der Antwort und der Textkörper enthält die Meldung "Die Cookie-Funktion Ihres Browsers ist deaktiviert. Please turn it on."
Ich habe die gleiche Ausgabe mit wget erhalten. Siehe das Bash-Skript am Ende dieser Nachricht.
Ich weiß nicht, wie ich das umgehen kann. Übersehe ich etwas? Irgendeine Idee?
Vielen Dank im Voraus.
John
Hier ist das Ruby-Skript:
# a ruby script
require 'net/https'
http = Net::HTTP.new('www.google.com', 443)
http.use_ssl = true
path = '/accounts/ServiceLoginAuth'
email='john@gmail.com'
password='topsecret'
# form inputs from the login page
data = "Email=#{email}&Passwd=#{password}&dsh=7379491738180116079&GALX=irvvmW0Z-zI"
headers = { 'Content-Type' => 'application/x-www-form-urlencoded',
'user-agent' => "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/6.0"}
# Post the request and print out the response to retrieve our authentication token
resp, data = http.post(path, data, headers)
puts resp
resp.each {|h, v| puts h+'='+v}
#warning: peer certificate won't be verified in this SSL session
Hier ist das Bash-Skript:
# A bash script for wget
CMD=""
CMD="$CMD --keep-session-cookies --save-cookies cookies.tmp"
CMD="$CMD --no-check-certificate"
CMD="$CMD --post-data='Email=john@gmail.com&Passwd=topsecret&dsh=-8408553335275857936&GALX=irvvmW0Z-zI'"
CMD="$CMD --user-agent='Mozilla'"
CMD="$CMD https://www.google.com/accounts/ServiceLoginAuth"
echo $CMD
wget $CMD
wget --load-cookies="cookies.tmp" http://groups.google.com/group/mygroup/topics?tsc=2