7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOSアプリのショートカットを使ってMastodonに画像やリンクをトゥートする

Last updated at Posted at 2019-04-22

こんにちは!スズキと申します!
前回に引き続き、iOSアプリのショートカットを色々と試しています。
私は普段**splatoonのMastodonインスタンス、イカトドン**でお世話になっています(いつもありがとうございます)。
MastodonってTwitterと掲示板を足して2で割ったような感じでメッチャ楽しいんですが、iOSは継続して開発されているクライアントがなかったりするのでもっと便利に使いたい。
(恐らくiOSのSafariがWebPushに対応したら概ね解決するんですが)

なので、我々iOSユーザーにはショートカットがあるので、必要なものはDIYをします。今回は、**「迅速な飯テロ」「NintendoSwitch公式アプリのShare即共有」「Twitterや各種Webのリンク共有」**を実現することが目標です。
イカ、よろしく〜〜〜

TL;DR

  • Mastodonにショートカットからトゥートする為のMastodon側のユーザ設定
  • ショートカットの共有と使い方
  • RestAPIとショートカット動作の解説
  • 課題

動作環境

iOS 12.2
ショートカット 2.2
Mastodon 2.6.1(Rest APIを使うので多分どこでもいけます)

トゥートするまでのスキームと本体

以下の流れでショートカットを動作させます。

  1. iOSの共有ボタンからショートカットを起動(引数を添えてショートカットを起動する)
  2. 引数の自動処理
  3. 本文や投稿範囲を入力
  4. トゥート!!

まずはiOSのショートカットアプリをダウンロードし、こちらから私の作成したショートカットを取得してください。
(バグ残ってたらすいません)

Mastodonのユーザー設定

まずはMastodonのユーザ設定です。
今から設定するショートカットはMastodonのクライアントアプリ扱いとなります。
技術的な説明は割愛しますが、ショートカットからMastodonにトゥートする際に、暗号化されたユーザーとパスワード情報(トークン)を添えて差し上げる、という形です。
なので、まずはトークンを入手しましょう。

ユーザ設定->開発->アプリを開きます。
スクリーンショット 2019-04-22 9.15.33.png
すると、上記のような画面が現れます。
これは今私がショートカット用に使っているアプリが設定されているので、触ったことがない方は何も記載がないと思います。

次に、新規アプリをクリックしましょう。
スクリーンショット 2019-04-22 9.19.42.png
アプリの名前は好きなもので結構です。
因みにトゥートの詳細を見ると表示されるのでご注意を!
スクリーンショット 2019-04-22 9.22.06.png

次にアクセス権ですが、これはread``write``followにチェックを付けておけば大丈夫です。
が、上記設定はつまり全部許可、になるので扱いには充分気をつけて下さい。
後述のトークンが漏れたら全権限が渡ります。
出来たら、送信をタップ。
元の一覧画面に戻るとアプリが作成されましたので開きます。

スクリーンショット_2019-04-22_9_28_18.png このアクセストークンが超重要です。あとで使います。 これでクライアント側の準備は完了です。 お疲れ様でした。

ショートカットの設定

画像は割愛しますが、URLに記載されているアドレスをお使いのインスタンスのアドレスにしてください。
元のショートカットは某所になっています。
(汎用性考えるならここも変数にすればよかったですね…)
次にショートカットにトークンを登録します。
テキストBearer(半角スペース)[tokenの文字列]を1行で記載して下さい。

完了後は、以下のスクリーンショットの様になります。
IMG_2233.jpeg

このショートカットはイメージ、SafariのWebページ、URLを受け入れる設定になっています。
IMG_2234.png

あとは、共有メニューのアクティビティを有効にするだけです。
IMG_2243.jpeg

実際に動かしてみる

撮った写真や、
IMG_2238.png

スクリーンショットの左下からすぐ共有メニューに飛べるので、
IMG_2240.png

勿論SwitchオンラインのShareボタンから出る共有でも飛ばせますし、
IMG_2235.png

みんな大好きはてなブックマークの共有からも、
IMG_2244.png

Mastodonに共有を選択すると、公開範囲の設定やトゥート本文を入力して、トゥートできます!
麺が伸びる前にラーメンの写真をアップロードして、次のマッチングが完了するまでにリザルトをシェア出来ます!
IMG_2236.jpeg

実際の動作

ショートカットを上から追っていけば、大体分かると思います。
ポイントとしては、次の場合が所謂ifです。
辞書はJSONを取り扱う事が出来ます。
また、JSONはリストとしても扱われるので、取得することが出来ます。
実際のサーバとのやり取りはREST APIを使用しているので、興味のある方はググるとなんとなく分かると思います。
(私も全然わかっていなかったんですが、公式ドキュメントと先人のショートカットを見ながらなんとかなりました。)

課題

画像4枚の投稿が出来ません。
これはMastodonのイメージ投稿システムとして、画像をアップロードするとJSON形式でidが帰ってきて、そのidをPOSTすることで画像(が添付されているように見える)トゥートが出来るのですが、戻ってきたidを上手いこと処理出来ないです。
変数に入れればなんとかなりそうなのですが、フォーマットとの兼ね合いがありこれ以上ショートカットも長くなると挙動が怪しく…。
良い方法があれば教えて下さい!

参考資料

iOS12のショートカットアプリを使ってマストドンAPIを叩いて呟いてみた
マジに無限の可能性ですねこれは…。ショートカットを触るきっかけになりました、ありがとうございます。
気になった人の用語集は完全にドンピシャで、私のような初学者にはショートカットと含めて様々な足がかりになると思います。

MastodonのAPI公式ドキュメント
一生にらめっこしてました。

イカトドン
動かねーーーーーーとか言いながらAPI叩きまくってすいませんでした…。これからもよろしくおねがいします。

以上です、ご覧いただきありがとうございました。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?