Dies ist ein Artikel über das Abrufen des für die Verwendung der Mastodon-API erforderlichen Zugriffstokens.
Abhängig von grant_type gibt es verschiedene Möglichkeiten, mit oauth2 auf Zugriffstoken zuzugreifen, aber Artikel, die Sie häufig sehen Ist ein Beispiel in Python, um mit grant_type =" authorisation_code "
zu erhalten, da viele von ihnengrant_type = "password"
haben.
$ 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 : ****************************************************************
Holen Sie sich eine Client-ID, um sich als authentifizierte App zu registrieren. Auf Twitter werden Vorgänge wie in MyApps auf dev.twitter.com registriert. Da mastodon kein Webinterface hat, holen Sie es sich mit der REST-API.
Sie erhalten die client_id und 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 sollte diese URL tatsächlich verwenden, um sie auf der Konsole anzuzeigen, ohne sie umzuleiten. Umfang ist die Berechtigung, die diese App vom Benutzer benötigt. Sie sollten nur die Berechtigungen anfordern, die Ihre App benötigt.
Da die Ausgabe der Client-ID für jede Anwendung erstellt wird, wird sie im Beispiel in einer Datei gespeichert und wiederverwendet.
Generieren Sie mithilfe der Client-ID eine URL für die Autorisierungsgenehmigung. Der Benutzer öffnet es in einem Browser, bestätigt und genehmigt die für die App erforderlichen Berechtigungen (ggf. nach dem Anmelden).
Nach der Genehmigung ist es ein Ablauf, auf die von der Anwendung angeforderte URL umzuleiten und den Authentifizierungscode auf der Anwendungsseite zu erhalten. Um die Weiterleitung zu akzeptieren, muss sie jedoch über https mit dem Serverprogramm zugänglich sein ** (der Webdienst ist so). Sollte gemacht werden, um Hier wird der Bestätigungscode im Browser angezeigt und der Benutzer kann ihn kopieren und einfügen. Desktop-Clients, die keine Browser sind, verwenden dieses Format.
Ein Autorisierungscode kann vom Benutzer abgerufen werden, der ihn im Browser genehmigt.
params = urlencode(dict(
client_id=client_id,
response_type="code",
redirect_uri="urn:ietf:wg:oauth:2.0:oob", #Codeanzeige im Browser
scope=SCOPE
))
return 'https://mstdn.jp/oauth/authorize?'+params
Stellen Sie ein Zugriffstoken mit dem Authentifizierungscode client_id und client_secret aus.
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"]
Da das Zugriffstoken abgerufen wird, verwenden Sie es im Authorization-Header der API.
https://github.com/civic/mastodon-auth-example
Recommended Posts