概要
「SNSの投稿引用整形サービスSocial Citer | GNU social JP」で分散SNSの投稿引用整形用サービスSocial Citerの公開を告知しました。その後、Misskey対応など細かい修正などを行っており、今回Bluesky APIに対応しました (Support Bluesky API · d083b090d8 – NotABug.org: Free code hosting)。Bluesky APIでの投稿取得方法の調査で試行錯誤したので、手順などをまとめておきます。
「BlueskyでのMastodon著者Eugen Rochkoの偽アカウントの登場 | GNU social JP」でBlueskyでの投稿を複数回引用する必要が発生し、Blueskyのユーザーや話題が増えるにつれて、そろそろ対応が必要に思っていました。4月中旬の「アプリ: Blueskyの公式Androidアプリの公開 | GNU social JP」と「BlueskyのGo言語のバックエンド技術者の求人 | GNU social JP」の記事で再び引用が必要になったので、急遽対応しました。
画面イメージと引用のイメージは以下となります。
Paulinho Frazee✌️|@pfrazee.com? Android is finally here! ? Google takes a while to update their search so here’s the direct link: Bluesky - Apps on Google PlaySocial media as it should be
引用投稿にも対応しています。Blueskyでの投稿取得は現状認証が必須のため、ユーザー名とパスワードの入力欄をBlueskyのためだけに追加しました。
なお、Social Citerは基本的に私しか使わないので、入力の手間を省くためハンドルの入力欄は私のハンドルをデフォルトで入力しています。
手順
Social CiterでBlueskyに対応するにあたって、Bluesky APIでの投稿取得方法を調査したので今後のためにその情報を整理して記載しておきます。
「記事: gihyo.jpでのBlueskyの記事2件の公開 | GNU social JP」で紹介した「開発視点から見る、新しい分散型SNS「Bluesky」とAT Protocolの可能性 | gihyo.jp」と以下の投稿を参考にしました。
実際にcurlコマンドで「https://{handle}/xrpc/com.atproto.identity.resolveHandle?handle={handle}」のURLにHTTPS GETリクエストを飛ばしたら、「{“did”:”did:plc:…”}」ってJSONが帰ってきた。bsky.socialの実装は、特にUAやカスタムヘッダを必要とはしないらしい。
— sounisi5011/プログラム (@sounisi5011Prog) April 7, 2023
<https://staging.bsky.app/profile/pfrazee.com/post/3jtqhia5mxe2z>の投稿を取得するとします。
詳細プロフィール。SNS: X Twitter/GS=gnusocialjp@gnusocial.jp/WP=gnusocialjp@web.gnusocial.jp。2022-07-17からgnusocial.jpとweb.gnusocial.jpのサイトを運営しています。WordPressで分散SNSに参加しています。このアカウントの投稿に返信すると、サイトのコメント欄にも反映されます。
Comments