SwarmのチェックインをSNS連携

コラム

元々は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への投稿には、改行を含んだテキストがソースの場合は、投稿できないことになる。

コード書ける方は、自分でボット作ったほうが早いんでしょうね・・・。

コメント

タイトルとURLをコピーしました