📘 hkob-astro-notion-blog

これまではてなブログにて情報発信をしていましたが、令和5年3月22日より、こちらでの情報発信を始めました。2019年以前の古い記事は過去の Middleman 時代のものなので、情報が古いです。記録のためだけに残しています。

Notion から Twitter と Instagram に同時投稿するショートカット

💡
5/20 19:00 修正
当初、写真のみをツイートし、テキストはペーストすることで対応していました。以下の記事を見るとテキストと画像を変数に入れることで、一括でツイートできることがわかりました。せっかくなので記事を修正します。また、複数枚の画像にも対応して欲しいという意見がありましたので、そちらも対応してみようと思います。また、Twitter については link もツイートできるようにします。

1. はじめに

昨日の座談会にて、任意の Twitter の記事を Notion データベースに登録する TwitterToNotion を紹介しました。これ自体は先週の Notion しゅふ会のオフ会にて作成した CameraNotion を改変しただけのものです。

これを受けて、座談会終了後にたむらさんから、逆に Notion データベースから、Twitter と Instagram に同時に投稿できないかという相談がありました。実際、これには元ネタがあり、ショートカットで同時投稿する記事はすでに紹介されてます。この記事では、ショートカット起動後にテキストを入力するというものだったので、この入力部分を Notion のデータベースから取り出せないかという相談でした。

2. データベースの準備

データベースはこんな感じで用意しました。Twitter はあまりハッシュタグを付けませんが、Instagram はかなりハッシュタグを満載するイメージがあるので、別プロパティにしています。また、Twitter は文字数など気にすることもあるので、テキストも別にしました。同じでよければコピーすればいいと思います。image には掲載したい画像を載せます。URL 経由で取得するだけなので、アップロードした画像でも外部リンクでもどちらでも大丈夫です。

テンプレートを配布しているのでこちらから取得してください。

https://hkob.notion.site/2266fc589c914a159ca8365fc1c6bbd0?v=6acd31d30281429eb81ff0274843986a

3. ショートカットの作成

ほとんどいつものものと変わらないので、解説はさらっと行うだけにします。iPhone や iPad からは共有シートから起動します。Notion のページを開いていれば、その URL が変数 URL に保存される形です。一方、Arc だと共有からショートカットを選ぶまでのクリック数が多いので、メニューバーから起動します。その時には URL を渡せないので、開いている Arc の URL を取得します。ただし、macOS の場合には Instagram への投稿はできないので、Twitter 専用になります(私はこの使い方です)。

次は URL から page_id を取得する部分です。これもいつものお決まりのアクションです。最初に「テキストの置き換え」で末尾のオプションを取り除きます。その後、末尾にある page_id を一致で取り出します。

page_id が取得できれば、Retrieve a page でページ情報を取り出すだけです。上は Authorization で利用するインテグレーションキーです。

ここからはほぼ同じ手順の繰り返しです。最初は TwitterHash を取り出します。

次は TwitterText の取り出しです。プロパティの参照が異なるだけでほぼ同じですね。

二つの情報を twitterContents という変数に入れておきます。

また、link に URL が存在するときには、twitterContents に追加する処理を追加しました。

Instagram も同様です。まずは InstagramHash の取り出しです。

同じく InstagramText の取り出しです。

Instagram は Twitter とは異なり、写真しか受け付けないので、キャプション用にテキストだけ作成しておきます。

複数画像を登録できるように、画像の枚数だけ繰返しを行い、twitterContents、InstagramContents のそれぞれに追加します。twitterContents にはテキストも含まれていますが、InstagramContents は画像のみが登録されています。

あとはそれぞれの Contents を Twitter と Instagram に登録するだけです。ただし、macOS にはインスタグラムのアプリがないので、不明なアクションになってしまいます。回避するためにデバイスの OS が macOS の場合には、Instagram への投稿を回避するようにしました。

iPad の方ではこんな感じで見えています。現在のバージョンではキャプションの部分は現在は機能していないそうですが、アクションが実行されたときに自動的にクリップボードにコピーされるとのことです。このため、投稿画面でペーストすることでテキストが記述できます。

自分で作るの大変だと思う人はこちらからインストールしてみてください。

3. おわりに

私が Instagram をやっていないので、テストはたむらさんにやってもらいました。実行結果はこちらをみてください。深夜のテンションで作ったので心配でしたが、うまく動いているようです。私はこれをベースに URL なども投稿できるツイートアプリを作ろうと思います。 この時のバージョンは Twitter の投稿時にテキストをクリップボードに貼り付けていましたが、この記事のバージョンでそれらを自動化しました。