MisskeyでアプリからAPIトークンを取得して投稿するまで
はじめに
他にMisskeyでアプリのAPIを使って投稿する記事が見つからなかったので、備忘録として上げておきます。
環境
Ubuntu 19.10
Missleyのインスタンス めいすきー(https://misskey.m54.net/)
注意
筆者はめいすきー(https://misskey.m54.net/)で投稿していますが、自分でAPIトークンを取得する場合はこのURLを自分のmisskeyのインスタンスのURLに適宜置き換えて下さい。
(以降はめいすきーのURLを用いて説明します。)
1, アプリを登録する
https://misskey.m544.net/dev/apps
上記のリンクにアクセスし、「アプリ作成」をクリック
アプリケーション名、アプリの概要を入力し、「投稿を作成・削除する」にチェックを入れて「アプリケーションの作成」ボタンをクリックしてください。
アプリを作成すると、先程作成したアプリが表示されているはずなのでアプリの名前をクリックします。
クリックするとアプリのシークレットキーが取得できます。このシークレットキーは後で使用するのでメモしておくとよいです。
2, アプリを認証する
アプリを認証するためには、https://misskey.m544.net/api/auth/session/generateに先程取得したシークレットキーを使ってリクエストを送信します。
筆者はcurlを使用しました。JSON形式でPOSTが出来たらなんでもいいと思います。
curl -X POST -H 'Content-Type:application/json' -d '{"appSecret":"<シークレットキー>"}' https://misskey.m544.net/api/auth/session/generate
リクエストを送ると、認証用のトークンとURLが取得出来るので、認証用のURLにアクセスします。
認証用のトークンはこの後に使用します。
アクセスを許可を選択します。
3, APIトークンを取得する
https://misskey.kurume-nct.com/api/auth/session/userkeyに先程使用したシークレットキーと、先程取得した認証用のトークンを使用して、リクエストを送ります。
curl -X POST -H 'Content-Type:application/json' -d '{"appSecret":"<シークレットキー>, "token":"<認証用のトークン>"}' https://misskey.m544.net/api/auth/session/userkey
リクエストに成功すると、レスポンスの中に、"accessToken":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"とアクセストークンが返ってきているはずです。
このアクセストークンを先程のシークレットキーを連結し、sha256と呼ばれるハッシュ関数でハッシュ化することで、ようやくAPIトークンが取得できます。
(以下のコマンドで取得できます)
$ export accesstoken="<アクセストークン>"
$ export secretkey="<シークレットキー>"
$ echo -n $accesstoken$secretkey | shasum -a 256
4, 投稿する
いよいよAPIトークンを用いて投稿を行います。方法は非常にシンプルです。
https://misskey.m544.net/api/notes/create
上記のURLにAPIトークンを投稿したい文章を載せてリクエストを送ります。
curl -X POST https://misskey.m544.net/api/notes/create -d '{"i":"<APIトークン>","text":"hogehoge"}'
成功すると、以下のように文章が投稿出来ているのが確認できるはずです。
以上で投稿完了です。お疲れ様でした。
参考にした記事
https://misskey.kurume-nct.com/api-doc
https://blog.jnsk.info/post/174592458087/misskey%E3%81%AEapi%E3%82%92%E5%8F%A9%E3%81%84%E3%81%A6%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8B
Author And Source
この問題について(MisskeyでアプリからAPIトークンを取得して投稿するまで), 我々は、より多くの情報をここで見つけました https://qiita.com/neruneru/items/b56258e82e0f9a61850e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .