Blueskyに共有する簡易サービスを作ったよ

作ったサービス

シンプルに「Blueskyで共有」という名称です(権利は保有しません)。


Twitterではありとあらゆるサイトに「ツイート」ボタンが設置されていますが、Blueskyではそのようなボタンはあまりありません。
というのも、2024年2月29日 (日本時間) まで、それを実現する仕組みが用意されていなかったからです。

しかし、その機能が実装されたことによって、「投稿」ボタンを設置できるようになりました。
なので今回、その中間にワンクッション置くサービスを作りました。

「別にワンクッション置かなくてもBlueskyに直接投稿すればいいんじゃ?」と考える人もいると思うんですが、皆さん忘れがちなこと……Blueskyってマストドンと同じような”分散型SNS”なんですよね。
いつかマストドンのように広く連合が開始されてちゃんとした分散型SNSになったときには、Blueskyにしか投稿できないと困るわけです。

というわけで、ワンクッション置くサービスは現時点では必須ではないけど将来的にあったらいいよねということで、「Blueskyで共有」を作りました

これって何?

先述の通り、Blueskyに共有する、いわゆる「シェアボタン」を押した後、実際に投稿するまでの間にワンクッション置くためのサービスです。
自身のイラスト公開サイト「こイコレ!」に設置してあるので、まずはそれを見てもらうと早いかと思います。

こイコレ!はこちら
https://mistlake.net/coicolle/

ページを開くと、ページの上の方と、各イラストを拡大表示した際に「投稿」ボタンが表示されます。

これを押すと、「Blueskyで共有」に飛びます。
ここで、共有先のサーバーを選んで「投稿画面へ」を押せばいいという感じです。簡単ですね。


共有ボタンは利用する側で独自に作ってもらう必要がありますが、「Blueskyで共有」は誰でもそのまま使えます。

使い方 (共有したい側)

使い方はすごくシンプルです。

先ほどのこの画面で、説明しますね。

「記憶した一覧から選択する」は、初期状態でBluesky公式サーバーが登録されています。
また、過去に「このサーバーを記憶する」にチェックを入れて手入力で投稿した場合は、そのサーバーも一覧に表示されます。
この一覧に利用したいサーバーが載っている場合は、利用したいサーバーのチェックを入れて「投稿画面へ」を押すだけでいいです。

記憶した一覧にないサーバーへ共有するときは、「サーバーのアドレスを入力する」の入力欄にサーバーのアドレスを入力します。
なお、入力欄に薄く表示されているように、入力するのはホスト名だけです。「https://」や「@~~」などは入力しません。


「投稿画面へ」を押すと、指定したサーバーの投稿画面が表示されるので、必要に応じて書き換えて投稿ボタンを押します。
指定したサーバーにログインしていない場合はログイン画面が出るので、自分のIDでログインしてください。

なお、ページにも記載がありますが、リンクカードやメンションは自動設定されないので、必要に応じて手動で設定してください。(現時点でそれを実現する機能がなさそう)

使い方 (自身のページにボタンを設置する側)

実を言うと、Twitterの共有リンクとほとんど同じです。

https://mistlake.net/bluesky-share/?

のURLに対して、適切なパラメーターを与えてやるだけで使えます。

パラメータは以下の通り。
順不同ですが、「本文」、「ハッシュタグ」、「URL」、「~より」の順に並びます。必須パラメータはありません。
各パラメータはURLエンコードしてください。でも、しなくても動くかもしれません。

本文

text=本文の文字列

投稿の本文となる文字列です。

ハッシュタグ

hashtags=ハッシュタグ1,ハッシュタグ2

投稿にハッシュタグを付与したい場合に設定します。
シャープ「#」はつけず、カンマ「,」で区切ってください。

URL

url=https://example.com

投稿にURLを付与したい場合に設定します。

~より

via=@handle

表現が難しいんですが、そのページなどの所有者の「@ハンドル」を指定します。
一般に「@cojohne.bsky.social」のような形式のものです。
投稿の末尾に「~より」の一文で挿入されます。

ぜんぶ組み合わせると…

ぜんぶ組み合わせるとこうなります。

https://mistlake.net/bluesky-share/?text=これが本文&hashtags=hashtag,oisii&url=https://mistlake.net/hogehoge&[email protected]

※実際には各項目についてURLエンコードしてください

ありそうな疑問

Q. データ収集とかしてない?

してません。HTMLのソースコードを見てもらうとわかりますが、フォント以外のデータは外部から読み込んでおらず、すべてひとつのページ内で完結しています。

Webサーバー側のアクセスログはどうしても残りますが、データ収集ではありません。

Q. 「このサーバーを記憶する」にチェックするとデータ収集されるんじゃ?

いいえ。「このサーバーを記憶する」にチェックを入れた場合、「投稿画面へ」を押したタイミングで利用者のブラウザ(SafariとかChromeとか)の内部領域に記憶されます。データは送信も収集もされません。

そのため、キャッシュクリアなどを行うと、「記憶した一覧」から消えることがあります。

Q. 「このサーバーを記憶する」にチェックしたけど記憶されないよ?

サーバーの情報は、Local Storageというウェブブラウザの内部領域に記憶されます。そこへのデータ保存を遮断している場合や、キャッシュクリアを行った場合、同じ端末でも違うブラウザからアクセスした場合などに、記憶されなかったり記憶されているものにアクセスできないということが起こります。

Q. うちのサーバーに設置できない?(セルフホストできない?)

このサービスは、本文のフォントとアイコンフォント以外はすべてHTMLにべた書きしています。
なので、https://mistlake.net/bluesky-share/index.htmlのソースをまるごとコピペすれば、本文のフォントとアイコンフォント以外はそのまま使えて動きます。

アイコンフォントはFontAwesome 6系を使っているので、同じ物をご自身で設置すれば問題ないでしょう。

Q. Twitterの共有画面から簡単にこのサービスにコピペできない?

ブックマークレットを動かすことができる環境であれば、以下のブックマークレットを動かせば簡単に共有できる…気がします。

javascript:location.href=location.href.replace("twitter.com/intent/post","mistlake.net/bluesky-share/")

Q. 他サービスのパクリじゃ?

これを作った現時点で他サービスは存在しません。(こじょん調べ)
また、権利は保有していないのでパクられてもいいです。より分散型SNSの輪が広がることが望みですので。

コメント

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