Πώς να οικοδομήσουμε ένα Raspberry Pi Twitter Bot

Το Twitter είναι ο παγκόσμιος μεγαλύτερος χώρος αποθήκευσης σύντομων μηνυμάτων από άτομα που δεν έχουν τίποτα να πουν - και τώρα και εσείς μπορείτε να συμβάλλετε σε αυτό το επικό έργο με ένα αυτόματο Twitter bot, το οποίο τροφοδοτείται από το Raspberry Pi. Γαμώτο, φυσικά - μερικοί άνθρωποι τιτίζουν πραγματικά ενδιαφέροντα πράγματα. Δεν είμαι όμως ένας από αυτούς - χρησιμοποιώ το ορυχείο μου για την απρόθυμη προώθηση προϊόντων σε αντάλλαγμα για δωρεάν υλικό, συμμετοχές σε διαγωνισμούς και αυτόματη δημοσίευση νέων επεισοδίων από την δική μας Τεχνοφιλία Podcast.

Το Twitter είναι ο παγκόσμιος μεγαλύτερος χώρος αποθήκευσης σύντομων μηνυμάτων από άτομα που δεν έχουν τίποτα να πουν - και τώρα και εσείς μπορείτε να συμβάλλετε σε αυτό το επικό έργο με ένα αυτόματο Twitter bot, το οποίο τροφοδοτείται από το Raspberry Pi.  Γαμώτο, φυσικά - μερικοί άνθρωποι τιτίζουν πραγματικά ενδιαφέροντα πράγματα.  Δεν είμαι όμως ένας από αυτούς - χρησιμοποιώ το ορυχείο μου για την απρόθυμη προώθηση προϊόντων σε αντάλλαγμα για δωρεάν υλικό, συμμετοχές σε διαγωνισμούς και αυτόματη δημοσίευση νέων επεισοδίων από την δική μας Τεχνοφιλία Podcast.
Διαφήμιση

Το Twitter είναι ο παγκόσμιος μεγαλύτερος χώρος αποθήκευσης σύντομων μηνυμάτων από άτομα που δεν έχουν τίποτα να πουν - και τώρα και εσείς μπορείτε να συμβάλλετε σε αυτό το επικό έργο με ένα αυτόματο Twitter bot, το οποίο τροφοδοτείται από το Raspberry Pi. Φυσικά, μερικοί άνθρωποι τιτίβουν ενδιαφέροντα πράγματα Πώς να χρησιμοποιήσετε το Twitter για να αναζητήσετε τους μνηστήρες στην περιοχή ενδιαφέροντός σας Πώς να χρησιμοποιήσετε το Twitter για να αναζητήσετε τους μνηστήρες στην περιοχή ενδιαφέροντος Στον πραγματικό κόσμο, ένας μέντορας είναι ένας σοφός δάσκαλος που υποστηρίζει και καθοδηγεί κάποιον, και τους βοηθά να μεγιστοποιήσουν τις δυνατότητές τους. Στον online κόσμο, θα είστε πολύ τυχεροί να βρείτε κάποιον που θα ... Διαβάστε περισσότερα. Δεν είμαι όμως ένας από αυτούς - χρησιμοποιώ το ορυχείο μου για την απρόθυμη προώθηση προϊόντων σε αντάλλαγμα για δωρεάν υλικό, συμμετοχές σε διαγωνισμούς και αυτόματη δημοσίευση νέων επεισοδίων από την δική μας Τεχνοφιλία Podcast. Οτιδήποτε - οι οπαδοί μου με αγαπούν!

@ w0lfiesmith Το μισώ στο λογαριασμό σας στο Twitter. Τόσο πολύ.

- Justin Pot (@jhpot) στις 21 Αυγούστου 2013

Τώρα θα προσθέσω στη χρησιμότητα της προσωπικής ροής Twitter μου, έχοντας ένα Raspberry Pi tweet αυτόματα την τρέχουσα θερμοκρασία της CPU κάθε ώρα και μια εικόνα κάμερας!

Ξεκινώντας

Αυτό το έργο χρησιμοποιεί Python. μια απλή γλώσσα προγραμματισμού ιδανική για έργα DIY. Θα ξεκινήσουμε εγκαθιστώντας το Twython στην Pi - μονάδα Python για διασύνδεση με το Twitter. δημιουργώντας μια "εφαρμογή" Twitter για να αποκτήσετε ένα κλειδί API. τότε πηγαίνετε επάνω για να κάνετε τα πράγματα τιτίβισμα Pi για λογαριασμό μας. Θα είναι τόσο διασκεδαστικό!

Κάνω αυτό στο Raspian - αλλά θα πρέπει να λειτουργήσει θεωρητικά σε οποιοδήποτε λειτουργικό σύστημα Linux που έχετε στα Pi 10 Λειτουργικά συστήματα που μπορείτε να εκτελέσετε με το Raspberry Pi 10 Λειτουργικά συστήματα μπορείτε να τρέξετε με το Raspberry Pi Το υλικό του Raspberry Pi μόνο είναι μόνο μία πλευρά της ιστορίας: Σήμερα διερευνούν 10 διαφορετικά λειτουργικά συστήματα που μπορείτε να εγκαταστήσετε. Διαβάστε περισσότερα . Εάν δεν το έχετε ήδη, βεβαιωθείτε ότι έχετε ρυθμίσει το SSH, ώστε να μπορούμε να συνδεθούμε εξ αποστάσεως και να εκτελούμε εντολές κονσόλας.

Εγκατάσταση Twython

Είναι καλή ιδέα να τρέχετε πρώτα τις ενημερώσεις. Αντιγράψτε και επικολλήστε τις ακόλουθες εντολές μία κάθε φορά - οι περισσότερες θα απαιτήσουν επιβεβαίωση.

sudo apt-get update sudo apt-get upgrade sudo apt-get install python-setuptools sudo easy_install pip sudo pip install twython 

Καταχώριση μιας εφαρμογής Twitter

Προκειμένου να χρησιμοποιήσουμε το API Twitter - δηλαδή το περιβάλλον εργασίας REST που θα χρησιμοποιήσουμε για να δημοσιεύσουμε νέα Tweets και γενικά να αλληλεπιδράσουμε με το Twitter outisde της ιστοσελίδας twitter - θα πρέπει να καταχωρήσουμε μια νέα εφαρμογή. Κάνετε αυτό από αυτόν τον σύνδεσμο - δεν χρειάζεται να καθορίσετε μια διεύθυνση URL επιστροφής κλήσης και να δημιουργήσετε έναν ιστότοπο αν θέλετε.

νέα-twitter-app

Θα δείτε κάτι παρόμοιο με αυτό όταν τελειώσετε - αυτά τα πλήκτρα είναι μοναδικά για εσάς.

twitter-app

Από προεπιλογή, η εφαρμογή τίθεται σε λειτουργία μόνο για ανάγνωση, επομένως δεν θα μπορέσουμε να δημοσιεύσουμε tweets χωρίς να την αλλάξουμε με το Read and Write . Μεταβείτε στην καρτέλα Ρυθμίσεις και αλλάξτε τον τύπο της εφαρμογής .

readwrite-access

Μόλις αποθηκευτεί, επιστρέψτε στην καρτέλα " Λεπτομέρειες " και κάντε κλικ στο κουμπί στο κάτω μέρος για να δημιουργήσετε ένα διακριτικό πρόσβασης OAuth - αυτό δίνει στην εφαρμογή σας πρόσβαση στον δικό σας λογαριασμό Twitter. Ανανεώστε και αφήστε τη σελίδα ανοιχτή για αργότερα - θα χρειαστεί να αντιγράψετε την επικόλληση μερικών από αυτά τα πλήκτρα σε ένα λεπτό.

διακριτικό πρόσβασης

Δημιουργήστε το έργο σας Python

Ξεκινήστε κάνοντας έναν νέο κατάλογο για να φιλοξενήσετε το έργο σας Tweet και, στη συνέχεια, δημιουργήστε ένα νέο αρχείο.

 mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py 

Μπορείτε να το ονομάσετε ό, τι θέλετε, προφανώς.

Στον επεξεργαστή κειμένου που εμφανίζεται, αντιγράψτε και επικολλήστε τα παρακάτω, αντικαθιστώντας το κλειδί του καταναλωτή με το σχετικό κλειδί από τη σελίδα της εφαρμογής Twitter που αφήσαμε ανοιχτά νωρίτερα. Κάθε πλήκτρο περιβάλλεται από μεμονωμένα εισαγωγικά, οπότε φροντίστε να μην χάσετε αυτά. Σημειώστε ότι το ACCESS_KEY αναφέρεται ως " Διακριτικό πρόσβασης " στη σελίδα της εφαρμογής Twitter.

 #!/usr/bin/env python import sys from twython import Twython CONSUMER_KEY = '***************YOUR DATA*****************' CONSUMER_SECRET = '***************YOUR DATA*****************' ACCESS_KEY = '***************YOUR DATA*****************' ACCESS_SECRET = '***************YOUR DATA*****************' api = Twython(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status(status=sys.argv[1]) 

Πατήστε Ctrl-X και πατήστε Y για έξοδο και αποθήκευση του αρχείου. Κάντε το εκτελέσιμο με την ακόλουθη εντολή (αντικαθιστώντας το όνομα του αρχείου Python αν επιλέξατε κάτι άλλο)

 sudo chmod +x SillyTweeter.py 

Θα πρέπει τώρα να είστε σε θέση να δοκιμάσετε την ικανότητά σας να δημοσιεύετε tweets όπως έτσι:

 python SillyTweeter.py 'Hello Everyone, this is my Raspberry Pi tweeting you more nonsense' 

Γεια σας Καθένας, αυτό είναι το Raspberry Pi μου τρυπώντας πιο ανοησίες

- James Bruce (@ w0lfiesmith) στις 29 Αυγούστου 2013

Βελτιώστε τη θερμοκρασία CPU σας

Τώρα που μπορείτε να δημοσιεύσετε κάθε είδους ανοησία που θέλετε, ας προσαρμόσουμε την εφαρμογή για να τραβήξουμε την τρέχουσα θερμοκρασία της CPU, γιατί θα είμαι καταδικασμένος εάν ο κόσμος δεν χρειάζεται να το γνωρίζει κάθε ώρα.

Ξεκινήστε προσθέτοντας μια άλλη εισαγωγή για τη βιβλιοθήκη os:

 import os 

Στη συνέχεια, προσθέστε τις ακόλουθες γραμμές, αντικαθιστώντας το προηγούμενο αρχείο api.update_status από το παραπάνω παράδειγμα.

 cmd = '/opt/vc/bin/vcgencmd measure_temp' line = os.popen(cmd).readline().strip() temp = line.split('=')[1].split("'")[0] api.update_status(status='My current CPU temperature is '+temp+' C') 

Δεν θα εξηγήσω αυτόν τον κώδικα πάρα πολύ επειδή δεν έχει σημασία - τρέχει μια εντολή που αρπάζει τη θερμοκρασία, στη συνέχεια χωρίζει την έξοδο για να εξαγάγει τον αριθμό και tweets που με ένα προσαρμοσμένο μήνυμα. Μπορείτε να βρείτε τον πλήρη κωδικό παράδειγμα εδώ.

Tweeting Webcam Pics

Τώρα ας κάνουμε κάτι πραγματικά χρήσιμο. θα πάμε tweet webcam pics. Ευτυχώς, το Twython υποστηρίζει τη λειτουργία API update_status_with_media, πράγμα που κάνει τα πράγματα μάλλον απλά.

Συνδέστε μια κάμερα USB στη συσκευή σας και ελέγξτε αν έχει αναγνωριστεί με την εντολή:

 ls /dev/video* 

αν βλέπετε video0, έχετε τύχη. Χρησιμοποίησα μια κάμερα PSEye Playstation 3 και λειτούργησε χωρίς προβλήματα.

Θα χρησιμοποιήσουμε επίσης τις βιβλιοθήκες πυγαίας για να τραβήξουμε μια φωτογραφία. προσθέστε τις ακόλουθες γραμμές αμέσως μετά τις υπάρχουσες δηλώσεις εισαγωγής:

 import pygame import pygame.camera from pygame.locals import * pygame.init() pygame.camera.init() cam = pygame.camera.Camera("/dev/video0", (640, 480)) cam.start() image = cam.get_image() pygame.image.save(image, 'webcam.jpg"') 

Με λίγα λόγια, έχετε αρχίσει την κάμερα σε μια συγκεκριμένη ανάλυση (ίσως χρειαστεί να προσαρμόσετε αυτό είναι ένα πολύ παλιό cam), έσπασε μια φωτογραφία και το αποθηκεύσα σαν jpg. Απλώς θα αντικαταστήσουμε το ίδιο webcam.jpg" κάθε φορά που τρέχει η εφαρμογή.

Τέλος, προσαρμόστε τη γραμμή update_status για να διαβάσετε:

 photo = open('webcam.jpg"', 'rb') api.update_status_with_media(media=photo, status='My RPi be tweeting images now =>') 

Φυσικά, μπορείτε να αλλάξετε ξανά το κείμενο κατάστασης στην τρέχουσα θερμοκρασία της CPU σας, αν θέλετε. Ο πλήρης κώδικας για αυτό το παράδειγμα είναι εδώ.

Το RPi μου θα εικονοποιήσει τις εικόνες τώρα => pic.twitter.com/NfUgLnWQtm

- James Bruce (@ w0lfiesmith) στις 29 Αυγούστου 2013

Μπορείτε να το επαναλάβετε?

Ένα bot bot είναι χρήσιμο μόνο αν τρέχει πολλές φορές, αυτόματα. δεν θέλετε να κάθεστε εκεί τρέχοντας την εντολή κάθε ώρα. Για να το πετύχετε αυτό, ας χρησιμοποιήσουμε το χαρακτηριστικό προγραμματισμού CRON της Pi (Τι είναι μια εργασία CRON; Αυτοματοποιήστε την αντιγραφή Wordpress με Simple Shell Scripting & CRON Αυτοματοποιήστε την αντιγραφή Wordpress με Simple Shell Scripting & CRON Την τελευταία φορά που μιλήσαμε για αντιγράφων ασφαλείας του Wordpress, σας έδειξα πώς απίστευτα εύκολο ήταν να δημιουργήσετε αντίγραφα ασφαλείας ολόκληρης της βάσης δεδομένων και των αρχείων σας μέσω SSH με λίγες μόνο εντολές ... Αυτή η φορά, πρόκειται να δείξω ... Διαβάστε περισσότερα)

 sudo crontab -e 

Επικολλήστε αυτή τη γραμμή, για να τρέχετε κάθε ώρα.

 */60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py 

Αλλάξτε το σε * * * * * αν θέλετε να τρέχει κάθε λεπτό και να είστε προετοιμασμένοι να χάσετε τους οπαδούς πιο γρήγορα από έναν λογαριασμό Twitter που χάνει τους οπαδούς γρήγορα.

Αυτό είναι για σήμερα. Είμαι χαρούμενος που συνέβαλε περισσότερο την ανοησία στο τεράστιο πλούτο των άχρηστων bytes στο Διαδίκτυο και ελπίζω να το κάνετε και εγώ! Δώστε την εκτίμησή σας για αυτό το σεμινάριο, ενημερώνοντάς το, και έπειτα ενημερώστε μας για το ποιο είναι το δικό σας Twitter bot που πρόκειται να τιτίβισμα σχετικά με τα σχόλια.

Πιστοποίηση εικόνας: adafruit / flickr

In this article