Ich bin mir nicht sicher für welches Einsatzszenario Love das Skript entwickelt hatte, jedenfalls will ich erst einmal nicht, dass das Skript Daten einer Datei entnimmt. Ich habe dazu die main-Funktion so geändert, dass ich erst einmal manuell Daten eintragen kann:
Code: Alles auswählen
def main():
client = BloggerPost()
title = 'Test'
tm = '2012-04-20T17:03:00.001-07:00'
content = 'Test'
client.CreatePost(title, content, tm)
print 'Successfully posted entry'
Außerdem waren oben noch Änderungen nötig und zwar in der Funktion CreatePost:
Code: Alles auswählen
def CreatePost(self, title, content, tm):
entry = gdata.GDataEntry()
entry.title = atom.Title('xhtml', title)
entry.content = atom.Content(content_type='html', text=content)
if (DRAFT == 1):
entry.control = atom.Control()
entry.control.draft = atom.Draft(text='yes')
entry.published = atom.Published(tm)
return self.service.Post(entry, '/feeds/' + self.blog_id + '/posts/default')
Da tm bereits fertig aus der main-Funktion übergeben wird, ändert sich die entsprechende Zeile komplett. Außerdem war eine Änderung in der Zeile für entry.content erforderlich, die nun so aussieht:
Code: Alles auswählen
entry.content = atom.Content(content_type='html', text=content)
Ich bin mir hier sicher, dass das ein Fehler im Originalquelltext ist, da die Zeile in der jetzigen Form der Google-Anleitung genau entspricht.
Beiträge können jetzt einfach gepostet werden. Es scheint eine Einstellung bei blogger.com zu geben, die Post früher als 1988 nicht erlaubt. Versucht man es trotzdem, so gibt es einen Server-Fehler
Ehrlich gesagt ist es aber genau das, weshalb ich mich die letzten Tage mit der Software und der Google API herumgeschlagen hatte.