Sobald ich eine Facebook notification bekomme (Freundschaftsanfrage, nachrichten oder infos wie Pinwandeinträge etc) soll der Arduino eben wie in dem Tutorial mit einem Glöckchen klingeln.
Die Frage ist nur: Wie mach ich das? Ich habe nur einen Arduino Uno (servo etc). Vermutlich muss dann ein Script auf dem PC im hintergrund laufen und der Arduino verbunden sein, oder?
Ich habe mir mal das Script aus dem Tutorial angeschaut, aber ich werde daraus nicht wirklich schau, leider.
google mal nach "Facebook API" oder "Facebook API neue nachrichten", die API ist die Datenschnittstelle von Facebook.
Damit sollte sich eventuell abfragen lassen, ob du neue Nachrichten in deinem Account hast.
Das kannst du dann mit dem Ethernet Shield auch ohne dauernd laufenen PC realisieren.
das habe ich mir auch schonmal überlegt und auch massive Nachforschungen angestellt um den Weg des wirtschaftlichen Prinzips zu gehen. Also den des geringsten Wiederstandes
Dazu habe ich mich dann entschlossen mein altes Windows Mobile Telefon dazu zu missbrauchen. Es sind doch einige Zeilen Code und viele Vorraussetzungen zu erfüllen um das zu realisieren. Da stößt man imho schnell an die Grenzen des Arduino.
Abgesehen davon ist eine langwierige Registrierung notwendig um ein "App" bei FB bekannt zu machen und Zugriff zur API zu gelangen.
Werde in den nächsten Wochen daran mal weiter bauen und hoffentlich ein paar Ergebnisse posten!
Ich hätte auch daran interesse. Aktuelle versuch ich es eine Benachrichtigung für gMail, aber irgendwie klappt bei mir die Verbindung zwischen Arduino und Python Skript gar nicht..
So hab schon mal die erste Schritten gemacht und mein Skript zeigt mir schon die ersten Notifications von Facebook an.Leider stürzt das Skript danach ab..weiß aber noch nicht so genau warum..
Hab den Fehler aushebeln können, indem ich die Anzahl in der For schleife runtergesetzt habe. Ab einer gewissen Anzahl bekommt man eine Fehlermeldung.
Es läuft recht gut. Aber vor einem anderen Problem stehe ich jetzt.
In meiner Lösung, ruft er nur die Notifications auf. Da Facebook ja die Notifications speichert, meint das Skript jetzt immer, dass es immer etwas neues gibt, auch wenn man die Notification schon gesehen hat.
Überlege grad eine Lösung, wie ich überprüfen kann, ob diese Notification schon gelesen wurde oder noch nicht.
try:
ser = serial.Serial(SERIALPORT, 9600)
print "Serial connected"
time.sleep(3.0)
except serial.SerialException:
print "no device connected - exiting"
sys.exit()
for i in range(1, LOOPS):
newnotification= feedparser.parse(FACEBOOK)
//hier sollte eine Überprüfung rein
for i in range(1, 3):
print newnotification['items'][i-1].title
Leider beschreibst Du nicht die Lösung, WIE Du an die Notifications kommst. Das macht es natürlich schwer Dir zu helfen. Ich vermute mal, Du fragst eine Art RSS-Feed ab? Da die eigentliche Arbeit Dein Python-Script macht und das läuft auf einem Rechner der über genügend Speicher und Festplattenplatz verfügt, würde ich die Liste der letzten Notifications speichern und nach jedem neuen Abrufen überprüfen ob es Änderungen gibt. Erst dann werden diese signalisiert.
Man kann in der API die Notifications quittieren. Dann erscheint sie nicht nocheinmal.
Allerdings würde ich auch lieber den Weg gehen, sich die Notification ID zu merken und diese dann nicht erneut anzuzeigen.
Denn der Arduino soll ja schließlich nur als Info dienen und die Nachricht/Was auch immer soll dann im Browser oder der App angezeigt werden.
Dem serial.Serial nach zu urteilen, läuft der Ardu dauerhaft über einen PC? Bin ja immer noch auf der Suche nach einem vernünftigen WindowsMobile Programm...
import serial, sys, feedparser, time
FACEBOOK="https://www.facebook.com/feeds/notifications.php"
SERIALPORT = "COM7" # Change this to your serial port!
LOOPS=2
# Set up serial port
try:
ser = serial.Serial(SERIALPORT, 9600)
print "Serial connected"
time.sleep(3.0)
except serial.SerialException:
print "no device connected - exiting"
sys.exit()
for i in range(1, LOOPS):
newmails = feedparser.parse(FACEBOOK)
for i in range(1, 3):
print newmails['items'][i-1].title
# Output data to serial port
if newmails > 0:
ser.write(1)
print "new notification"
else:
ser.write(0)
print "no notification"
#print data to terminal
# Close serial port
ser.close()
Das ist mein Code. Man mus aber den Facebook link anpassen. Kann leider nicht MEINEN Link zur verfügung stellen, aber ich greife auf die RSS Notification Schnittstelle zu.
Gute Idee mit dem Schreiben in einer Datei..werd es mal versuchen..Hat jemand eine Ahnung wie man es machen kann, dass er immer zuvor ließt und bei änderungen, dann in die Datei schreibt?
Bin schon etwas weiter und ich kann jetzt die Facebook Notifications in eine Datei schreiben, aber jetzt weiß ich noch nicht wie ich die Datei lese und zeile für zeile durchgehen kann...