Twitter i Python

Cały czas zależy mi na zdalnej kontroli

było parę opcji

1. Facebook massanger – niestety FB postanowiło całkowicie zmienić messangera  i praktycznie zablokowało dostęp spod lini komend (w tym pythona itp.)

2. Google talk (hangaut) – sprawa taka sama jak w przypadku FB

3. Pushbullet (pushbullet.com) – niby działa opisze to w jakimś przyszłym wpisie. Ale mało osób to posiada

4. brak pomsyłów

5. od jakiegoś czasu siedzę na twitterze https://twitter.com/xkawakx więc czemu nie 🙂

W CAŁOŚCI OPIERAŁEM SIĘ NA RÓŻNYCH PRZYKŁADACH ZNALEZIONYCH W INTERNECIE!!! ( CZĘŚĆ KODU JEST DLA MNIE NIE ZROZUMIAŁA – ALE DZIAŁA)

instalacja jest banalnie prosta

sprowadza się do 4 komend

sudo apt-get install python-pip sudo python-dev libffi-dev libssl-dev
sudo sudo pip install --upgrade pip
sudo pip install tweepy
sudo pip install 'requests[security]'


isntalacja to jakieś 5 minut na raspberry pi 2

Tweepy chyba najpopularniejszy klient twittera pod pythona. U mnie działa !!!

Skoro instalacja była prosta 🙂 to konfiguracja musi być zakręcona

Ja założyłem nowe konto na twitterze specjalnie dla Alfreda i tej aplikacji

Ty drogi czytelniku zrobisz jak uważasz.

 

1. wchodzimy na strone https://apps.twitter.com/ i klikamy w „Create New App

tw1

2. wypełniamy cały formularz … zgadzamy się na warunki i klikamy na „Create Yout Twitter Application”

tw2

2a. Trzeba pamiętać żeby w twitterze był dodany numer telefonu inaczej nic z tego (sam się męczyłem z tym parę dni)

3. Insteresuje nas Załadka Permissions i opcja „Read, Write and Access direct messages” – bez niej Alfred nie będzie miał dostępu do prywatnych wiadomości a tak chce nim sterować

tw3

4. Po kliknięciu w update settings przechodzimy do zakładki „Keys and Access Tokens

4a. Nie wiem czy to jest wymagane ale na nowo wygenerowałem klucze klikając w „Regenerate Consumer Key and Secret

tw4

5. Klikamy na samemy dole w „Create my access token”

Mamy już wygenerowane wszystkie dane które są nam potrzebne

tw4

czyli

Consumer Key (API Key)

Consumer Secret (API Secret)

Access Token

Access Token Secret

 

Konfig i odpalenie

kod jest prosty szybki i dla mnie nic a nic nie zrozumiały (poza paroma wątkami)

import tweepy
import json
import os
import sys
reload(sys)
sys.setdefaultencoding('UTF8')
consumer_key = 'A4t1'
consumer_secret = 'jgK9A'
access_token = '33407265'
access_token_secret = 't6CegQ5RN8C'
c = '"'
s= ' '
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
error = tweepy.error.TweepError
class CustomStreamListener(tweepy.StreamListener):
def on_direct_message(self,status):
decoded = json.dumps(status._json)
a = json.loads(decoded)
source = a['direct_message']['sender_id_str']
print a['direct_message']['sender_screen_name'] + "(" + a["direct_message"]["sender_id_str"] + ")" + ": " + a['direct_message']['text']
stream = tweepy.streaming.Stream(auth, CustomStreamListener())
streamuser = stream.userstream()
track_list = None
stream.filter( track_list)


 

Na początku importujemy to co potrzebujemy czyli

biblioteki

tweepy json os i sys

reload(sys)
sys.setdefaultencoding('UTF8')

to zmusza sprawia że polskie snaki są jako tako rozpoznawane

consumer_key = 'A4t1'
consumer_secret = 'jgK9A'
access_token = '33407265'
access_token_secret = 't6CegQ5RN8C'

 

 

uzupełniamy to naszymi danymi z twittera

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
error = tweepy.error.TweepError
class CustomStreamListener(tweepy.StreamListener):
def on_direct_message(self,status):

łączenie i ściaganie prywatnej wiadomości

decoded = json.dumps(status._json)
a = json.loads(decoded)

i tu niespodzianka która dla mnie do tej pory jest wielkim zaskoczeiem najpierw, najpierw musze zrzucić do dumpa status a nastepnie załadować go ponownie w json (zakręcone ale działą)

print a['direct_message']['sender_screen_name'] + "(" + a["direct_message"]["sender_id_str"] + ")" + ": " + a['direct_message']['text']

zabawa z wyświetlaniem sender_screen_name – wyświetlana nazwa osoby która do nas pisze , sender_id_str – id osoby i text jako tekst który się nam wyświetla

 

stream = tweepy.streaming.Stream(auth, CustomStreamListener())
streamuser = stream.userstream()
track_list = None
stream.filter( track_list)

pierdoły których nie rozumiem ale działają

Tak wygląda kod

twittwe

odpalamy normalnie

pyton plik.py

po odpaleniu wchodzimy na twittera i wysyłamy nową wiadomość do (bota) Alfreda

alfik

inalfi

To na tyle 🙂 w dalszych wpisach będzie rozwinięcie tematu

Dodaj komentarz