Ceci est un article sur l'obtention du jeton d'accès requis pour utiliser l'API mastodon.
Il existe différentes manières d'obtenir des jetons d'accès avec oauth2 en fonction de grant_type, mais des articles que vous voyez souvent Est un exemple en Python à obtenir avec grant_type =" code_autorisation "
car beaucoup d'entre eux ont grant_type =" password "
.
$ python mastodon_auth_example.py
client id: XXXXXXXXXX...
client secret: YYYYYYYYYY...
open browser https://mstdn.jp/oauth/authorize?scope=read+write+follow&client_id=XXXXXXXXXXXXXXXXX&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code
input code > ZZZZZZZZZ....
access token : ****************************************************************
Obtenez un ID client pour vous inscrire en tant qu'application authentifiée. Sur Twitter, des opérations comme celles enregistrées dans MyApps sur dev.twitter.com. Puisque mastodon n'a pas d'interface Web, obtenez-le avec l'API REST.
Vous obtiendrez le client_id et le client_secret.
res = requests.post('https://mstdn.jp/api/v1/apps',
dict(client_name=CLIENT_NAME,
redirect_uris="urn:ietf:wg:oauth:2.0:oob",
scopes="read write follow")).json()
return res["client_id"], res["client_secret"]
redirect_uris devrait en fait utiliser cet uri pour s'afficher sur la console sans rediriger. La portée est l'autorisation que cette application requiert de l'utilisateur. Vous ne devez demander que les autorisations requises par votre application.
Étant donné que l'émission de l'ID client est créée pour chaque application, dans l'exemple, elle est enregistrée dans un fichier et réutilisée.
Générez une URL pour l'approbation des autorisations à l'aide de l'ID client. L'utilisateur l'ouvre dans un navigateur, confirme et approuve les autorisations requises par l'application (après s'être connecté si nécessaire).
Après approbation, il s'agit d'un flux pour rediriger vers l'URL demandée par l'application et recevoir le code d'authentification côté application, mais pour accepter la redirection ** Il doit être accessible via https avec le programme serveur ** (le service Web est comme ça) Devrait être fait pour Ici, le code de vérification est affiché sur le navigateur et l'utilisateur peut le copier et le coller. Les clients de bureau qui ne sont pas des navigateurs utilisent ce format.
Un code d'autorisation peut être obtenu par l'utilisateur qui l'approuve sur le navigateur.
params = urlencode(dict(
client_id=client_id,
response_type="code",
redirect_uri="urn:ietf:wg:oauth:2.0:oob", #Affichage du code sur le navigateur
scope=SCOPE
))
return 'https://mstdn.jp/oauth/authorize?'+params
Émettez un jeton d'accès à l'aide du code d'authentification, client_id et client_secret.
res = requests.post('https://mstdn.jp/oauth/token', dict(
grant_type="authorization_code",
redirect_uri="urn:ietf:wg:oauth:2.0:oob",
client_id=client_id,
client_secret=client_secret,
code=code
)).json()
return res["access_token"]
Puisque le jeton d'accès est obtenu, utilisez-le dans l'en-tête Authorization de l'API.
https://github.com/civic/mastodon-auth-example
Recommended Posts