Obtenció de les credencials per a l'API de Mastodon amb Mastodon.py, pas per pas

De binefa.com
Salta a la navegació Salta a la cerca

Obtenció de les credencials per a l'API de Mastodon amb Mastodon.py, pas per pas[modifica]

Fent un bot? Fent un bot en Python? fent un bot en Python que fa servir l'API de Mastodon? Si és així, necessites algunes credencials. Aquí hi ha una explicació de com fer-ho.

Mastodon.py per autenticació[modifica]

Sembla que Mastodon.py és una bona biblioteca per a treballar amb l'API de Mastodon. Malgrat això, els exemples d'autenticació fan servir arxius estàtics, però no et permet publicar tot el codi real a Github. Podem passar les credencials com a arguments d'un programa. Per a fer-ho, necessiteu les vostres pròpies credencials com a cadenes separades per poder copiar i enganxar.

Abans de continuar, instal·leu Mastodon.py amb pip:

   pip install Mastodon.py

Desenvolupament d'una aplicació[modifica]

Una "aplicació" al vocabulari de les API significa "una entitat a on els vostres bots s'hi autenticaran."

Per a fer una aplicació, comenceu amb una sessió d'intèrpret interactiva, important la classe Mastodon:

   >>> from mastodon import Mastodon

Ara, crideu a la funció create_app():

   >>> Mastodon.create_app('your-app-name', scopes=['read', 'write'], api_base_url="https://botsin.space")

Reemplaceu your-app-name amb el nom de la vostra aplicació. (No importa gaire el nom que tingui, però és important que el nom sigui únic). Empleneu api_base_url amb el nom apropiat; la instància de Mastodon amb la que us voleu comunicar (Colin Mitchell ha fet botsin.spaceespecíficament per a bots. Considereu fer-lo servir). Retornarà una tupla doble que conté l'identificador de client (client ID) i la clau secreta del client (client secret):

   (u'cff45dc4cdae1bd4342079c83155ce0a001a030739aa49ab45038cd2dd739cbe', u'd228d1b0571f880c0dc865522855a07a3f31f1dbd95ad81d34163ecb3c799fee')
 

Què signifiquen "client ID" i "client secret"? No importa gaire. Per al nostre propòsit són dues cadenes semblants a una contrasenya que fan falta per comunicar-se amb l'API de Mastodon.

Obtenint accés al token[modifica]

El proper valor que ens cal és el token d'accés. Podeu fer servir l'identificador de client i el secret de client per a tots els vostres bots. Però el token serà diferent per a cada bot que feu. En aquest punt, feu-vos un compte de Mastodon a botsin.space i consulteu el correu electrònic per a acabar el procés de verificació. Un cop tingueu accés, accediu al vostre compte i torneu a l'intèrpret interactiu. Per a obtenir el token per a l'usuari que heu creat, creeu un nou objecte Mastodon, passeu l'identificador de client i el secret de client obtinguts abans:

   >>> api = Mastodon('cff45dc4cdae1bd4342079c83155ce0a001a030739aa49ab45038cd2dd739cbe',
   ...   'd228d1b0571f880c0dc865522855a07a3f31f1dbd95ad81d34163ecb3c799fee',
   ...   api_base_url="https://botsin.space")

No oblideu de passar-li el paràmetre api_base_url; que ha de ser la mateixa que heu fet servir amb la crida a create_app(). Ara crideu al mètode .log_in() de l'objecte resultant (al qual heu assignat a la variable api):

   >>> api.log_in("bot-email@example.com", "bot-password", scopes=["read", "write"])

... a on bot-email@example.com és el correu electrònic que heu fet servir per a crear el vostre compte de Mastodon i bot-password és la contrasenya que heu fet servir. La crida retornarà una cadena amb el vostre token d'accés. Quelcom similar a:

   u'a2d6479451122af585d90c8a11fdd722f145f7e64273c74189c45a4816f7e303'

Ja teniu el vostre token!

Primera publicació[modifica]

Ara ja teniu les tres cadenes que us calen per a fer una petició a l'API de Mastodon amb el vostre usuari de bot. Per a publicar quelcom heu de crear primer un objecte Mastodon:

   >>> from mastodon import Mastodon
   >>> api = Mastodon(client_id, client_secret, access_token, "https://botsin.space")

... reemplaceu client_id amb el vostre identificador de client (client ID) i el secret de client (client_secret).Ambdós aconseguits per la crida a que heu fet abans a create_app(). I access_token amb el vostre token (obtingut amb .log_in()). Després crideu al mètode .toot() de l'objecte Mastodon amb una cadena per a publicar:

   >>> api.toot("Hola a tothom. Publicat des de l'Escola del Clot a 2n del CFGS de DAM!")

Per a un exemple complet d'un bot de Mastodon escrit amb Mastodon.py, codi font d' @iceboxbreakfast.


Text original