マストドンに共有する簡易サービスを作ったよ

作ったサービス

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


Twitterではありとあらゆるサイトに「ツイート」ボタンが設置されていますが、マストドンではそのようなボタンはあまりありません。
というのも、Twitterの場合はアクセス先が「twitter.com」固定ですが、マストドンの場合は世界中にたくさんのサーバーがあるため、どれかひとつに限定することができないため、設置が難しいのです。

じゃあ、その中間でワンクッション置くことができるサービスがあればいいよねということで、「マストドンで共有」を作りました

これって何?

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

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

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

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


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

使い方 (共有したい側)

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

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

「記憶した一覧から選択する」は、初回利用時や「このサーバーを記憶する」にチェックを入れないで利用した場合は、空っぽになっています。
上記画像のように記憶されている場合は、利用したいサーバーのチェックを入れて「投稿画面へ」を押すだけでいいです。

記憶した一覧が空っぽのときや、記憶した一覧にないサーバーへ共有するときは、「サーバー (インスタンス) のアドレスを入力する」の入力欄にサーバーのアドレスを入力します。
なお、入力欄に薄く表示されているように、入力するのはホスト名だけです。「https://」や「@~~」などは入力しません。
たとえば、自分が利用しているマストドンの自分のプロフィールが「https://mascodon.jp/@cojohne」だった場合、「mascodon.jp」を入力します。


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

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

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

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

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

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

本文

text=本文の文字列

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

ハッシュタグ

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

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

URL

url=https://example.com

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

~より

via=@user@server

表現が難しいんですが、そのページなどの所有者の「@ユーザー名@サーバー」を指定します。
投稿の末尾に「~より」の一文で挿入されます。

ぜんぶ組み合わせると…

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

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

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

ありそうな疑問

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

こういったウェブベースの便利ツールにおいてパクリとかそうじゃないとかあまり穏やかな話題じゃないですね…。
似たようなものが複数あってもいいじゃないですか。かつて存在したマストドンへの共有ボタンにも、時代の流れで消えてしまったものも複数ありますし…。

ちなみに、安定性や安全性を求めるのであれば、このサービスではなくmastoshareというサービスの方がいいです。たぶん…。

コメント

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