元々はFoursquareから始まり、Swarm移行後も外出履歴を残す目的で、チェックイン履歴を残すために使わせてもらってるSwarm。
TwitterがXに変わった頃にAPI仕様変更などあり、連携投稿などができなくなっていた。
近頃はSNSもX(Twitter)以外にも、BlueskyやMisskeyなどのも使ってるから、チェックイン履歴をSNSへ自動投稿してくれる方法を探った。
今回は以下のサービスを利用することで実現させた。
SwarmからX(Twitter)への連携
IFTTTを利用することで実現可能。
IFTTT上では、Swarmはまだ「Foursquare」として扱われているから、トリガーを指定するときは「Foursquare」を選ぼう。

まず「IF」として「Foursquare(Swarm)」を選び、「Any new Check-in」を選択。
写真付きチェックインを連携させたい場合は「New check-in with photo」を選べば良いだろう。
Thenとしては「Twitter(X)」から、「Post a tweet with image」を選択した。
これ以外でも全然OKだ。

テキスト部分はカスタマイズしている。
{{VenueName}}にチェックインした /
{{Shout}}
SwarmからBlueskyへの連携
実は当初はSwarm to Blueskyを利用していたが、ある時期から自分の環境ではBlueskyへの投稿が飛ばなくなったので、別の手段を模索。
今回は、IFTTTからBufferを組み合わせて投稿を実現しています。
まず事前準備として、Bufferにユーザー登録してもらい、Blueskyへ投稿できるようにしてください。
この際、BlueskyでBuffer用にアプリパスワードを発行することを忘れずに。
↓
実は前項で解説している、Swarm→X(Twitter)のアプレットの続きに、Bluesky投稿を組み込んでいます。

Blueskyへの投稿を追加するときは、X(Twitter)の投稿設定の下に+ボタンが出てるはずなので、それを押すことで新しいアクションを追加できます。
ここではBufferを見つけて指定。

Bufferアカウントの項で、Bufferで登録しているBluesky投稿用のアカウントを指定します。
Descriptionは、X(Twitter)と同じ内容で良いでしょう。
以上で完了です。
BufferはBluesky投稿以外にも、MastodonやThreads投稿にも対応しています。
したがって、MastodonやThreads投稿するのもこちらの内容を参考にすることで設定可能です。
SwarmからMisskey.ioへの連携
Misskeyは、IFTTTもBufferも連携サービスには今のところ含まれてません。なので、ひと工夫が必要。
私はMisskey.ioを利用していますが、Webhookには対応しています。
IFTTTはWebhookには対応してますので、これを利用することでチェックイン連携しちゃいましょう。
事前準備として、Misskey.ioでWebhook用のアクセストークンを発行しておきましょう。
Misskey.ioの画面上から、[設定]→ その他の設定 – [API]→ [アクセストークンの発行]より作成できます。“ノートを作成・削除する”の権限がONであれば、とりあえず充分だろう。
↓
IFTTTでアプレットを作っていく。

私の場合は、GoogleスプレッドシートにSwarmのチェックイン履歴を残しているので、そのアプレットに追加する形で、Misskey.ioへのWebhookによる投稿を入れてます。
「IF」として「Foursquare(Swarm)」を選び、「Any new Check-in」を選択。
写真付きチェックインを連携させたい場合は「New check-in with photo」を選べば良い。
「Then」としてGoogleスプレッドシートを指定しているが、今回は割愛。
次のアクションとして「Webhook」を選択する

URL:
https://misskey.io/api/notes/create
Method:POST
Content Type:application/json
Body:
{ "i": "your_access_token", "text": " {{EntryContent}} \n 『 {{EntryTitle}}』 \n {{EntryUrl}}" }
「your_access_token」の文字列部分は、Misskey.ioのAPI設定メニューより、アクセストークンを発行したものを入れてもらったら良い。
補足
IFTTTでWebhookを使ってテキスト投稿をする場合に、課題があります。
Webhook投稿にはJSONを使用しているが、このJSONには改行テキストは使えない。事前に改行を含むテキストの場合、改行をエスケープコードで置換してればよいのだけど、IFTTTにそういったテキスト加工する機能がない。
もしかしたら、追加費用が必要だけどIFTTTのAI機能を使ったらそういった加工もできるんだろうか?ちょっとそういった検証はできてないので、とりあえず保留・・・
そんなわけで、通常はIFTTTからのWebhookを使ったMisskeyへの投稿には、改行を含んだテキストがソースの場合は、投稿できないことになる。
コード書ける方は、自分でボット作ったほうが早いんでしょうね・・・。
コメント