Raspberry Pi Twitter Bot - první tweet přes API

Ať už Raspberry Pi používáte k jakémukoliv bohulibému 😉 účelu, tak s největší pravděpodobností bude neustále online. Takže na něm může běžet klidně několik samostatných služeb. Další velmi zajímavou je Twitter Bot. Jak z Maliny udělat robota, který bude posílat tweety?

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Twitter Bot 😁

Co je to Twitter?

Twitter je sociální síť. Podle počtu uživatelů se jedná o 6. největší. Umožňuje vám psát krátké zprávy tzv. tweety o maximální délce 280 znaků (dřív to bylo jen 140). Pokud ale začnete Twitter používat, tak si brzy zvyknete a nebude pro vás problém se do tohoto limitu vejít s téměř jakýmkoliv sdělením. Ono je to vlastně lepší. Každý tweet má totiž díky tomuto limitu jasné sdělení.

Účet na Twitteru

Pro vytvoření Twitter bota budeme samozřejmě potřebovat uživatelský účet. Tak si nějaký založíme. Je to jednoduché.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Úvodní obrazovka Twitteru

V prohlížeči otevřeme stránku https://twitter.com a klikneme na tlačítko Sign up.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Uživatelské jméno a e-mailová adresa

Vymyslíme si nějaké uživatelské jméno. Také budeme potřebovat e-mailovou adresu, na kterou přijde potvrzení.

Vyplňte formulář a pokračujte.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Zadání kódu z e-mailu

Na e-mail vám přijde potvrzovací 6ti místný kód, který zadejte do formuláře.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Zadejte heslo

Pak vás Twitter požádá o zadání hesla. Prosím zadejte nějaké pořádné. Hesla jako heslo123 nebo tak nejsou úplně bezpečná.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Výběr profilového obrázku

V dalším kroku si vyberte avatara a všechny ostatní klidně přeskočte 😉.

A je to… Účet na Twitteru máte založen.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
První tweet 🙂

Klidně si do světa můžete poslat svůj první tweet 😃.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Uzamčený profil po prvním tweetu

Po prvním tweetu bude účet uzamčen a bude potřeba potvrdit, že nejste robot a zadat telefonní číslo. Na které bude poslán další ověřovací kód. Přepište ho do formuláře a všechno zase poběží.

V menu Settings and privacy si můžeme změnit username, které bylo automaticky vygenerováno z vašeho uživatelského jména. To pak bude součástí URL adresy vašeho profilu.
V tomto menu také můžeme odstranit číslo telefonu.

Vývojářský účet

Pro automatizované posílání tweetů budeme potřebovat přístup k API. Takže jdeme na to.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Twitter developer

Přistoupíte na adresu apps.twitter.com a klikněte na create a developer account.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Vyberte účet

Vyberte účet, ke kterému chcete získat vývojářský účet a pokračujte.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Soukromé použití, jméno účtu a stát

Požádejte o přístup pro soukromé použití, zadejte account name a vyberte stát.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Popis projektu

V dalším kroku budete muset Twitteru popsat váš projekt. Tohle bylo asi nejtěžší z celé žádosti o vývojářský účet. Napsat 300 znaků o projektu. Tak směle do toho 🙂.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Smluvní podmínky

Dalším krokem je odsouhlasení uživatelských podmínek.

Po odsouhlasení vám twitter pošle další potvrzovací e-mail.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Můžeme vytvořit první aplikaci

Všechno je OK a můžeme si vytvořit svou první aplikaci.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Vytvoříme novou aplikaci

Vyplníme formulář...

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Bububu... odsouhlasit podmínky

odsouhlasíme podmínky... a máme vytvořenu svou první aplikaci.

Obrázky se nestihly načíst.
Prosím opakujte akci zachvilku.
Najdeme API klíče

V detailu aplikace na záložce Keys and tokens získáme API klíče, potřebné pro automatizované tweetování.

Tweetování z pythonu

K automatizaci tweetování použijeme knihovnu Twython.

Nainstalujeme ji tedy na Raspberry

sudo apt-get update
sudo apt-get install python3-twython


A můžeme začít vytvářet první program. Takový helloworld, abychom ověřili, že je všechno v pořádku a správně.

První program hellotwitter.py

vim hellotwitter.py


from twython import Twython

twitter = Twython(APP_API_KEY,
                  APP_API_SECRET_KEY,
                  APP_ACCESS_TOKEN,
                  APP_ACCESS_TOKEN_SECRET)

twitter.update_status(status='My first tweet using API!')


Konstanty APP_API_KEY, APP_API_SECRET_KEY, APP_ACCESS_TOKEN a APP_ACCESS_TOKEN_SECRET nahradíme za reálné klíče, které jsme získali z nové aplikace.

Program spustíme příkazem

python3 hellotwitter.py

Pokud všechno projde správně, nevypíše se do terminálu nic ale objeví se nový tweet 🙂

Pokud spustíme script znovu dostaneme chybové hlášení

Traceback (most recent call last):
  File "hellotwitter.py", line 5, in <module>
    twitter.update_status(status='My first tweet using API!')
  File "/usr/lib/python3/dist-packages/twython/endpoints.py", line 112, in update_status
    return self.post('statuses/update', params=params)
  File "/usr/lib/python3/dist-packages/twython/api.py", line 268, in post
    return self.request(endpoint, 'POST', params=params, version=version)
  File "/usr/lib/python3/dist-packages/twython/api.py", line 258, in request
    api_call=url)
  File "/usr/lib/python3/dist-packages/twython/api.py", line 194, in _request
    retry_after=response.headers.get('X-Rate-Limit-Reset'))
twython.exceptions.TwythonError: Twitter API returned a 403 (Forbidden), Status is a duplicate.


Tzn. Twitter nepropustí opakovaný tweet se stejným obsahem. OK. S tím se dá žít. 🙂

Závěr

Hmmm... takže. Máme vytvořený nový účet na Twitteru a máme ho provázaný s vývojářským účtem. Máme potřebné API klíče a umíme napsat program, který nám tweetne nový status.

K čemu to ale použijeme? Třeba abychom světu dávali vědět jaké počasí naměřila meteostanice. Postovali zajímavé fotky z webkamery.
Každý blog má RSS feed a tak proč nezautomatizovat i tweetování nových příspěvků?

O tom všem ale až příště 😉.

Twitter bot, Python

- (15. 3. 2019)

Jsem programátor, horolezec a tak trochu FlexiBee fanatik :-).
Na CharlieBlogu sepisuji své nápady a poznatky už od roku 2006.

Powered by CharlieBlog Engine v2.1 - Login