Fedibuzzer

Fedibuzzer(フェディブザー)は、フェディバース向けシェアボタンです。主要なActivityPub対応SNSに対応しています。

このサービスを利用してサイトにシェアボタン機能を実装する際は、必ず利用規約をご確認下さい。

特徴

  • 対応しているソフトウェアを採用しているものなら、どんなインスタンスでも対応
  • <script>タグひとつで導入可能
  • 外部リンクとして導入することも可能
  • APIを直接利用して、独自デザインでの利用も可能

外部リンクとして導入する

ウェブサイトから、FedibuzzerのシェアURLを新しいタブで呼び出すことで、シェア機能を実装することもできます。

https://fedibuzzer.ajr-news.com/share?

以下のコードを、シェアボタンを挿入したいところへ貼り付けてください。

<a href="https://fedibuzzer.ajr-news.com/share" onclick="window.open(this.href+'?url='+encodeURIComponent(location.href)+'&text='+encodeURIComponent(document.title+'\n'+location.href)); return false;" target="_blank">
    <img src="https://fedibuzzer.ajr-news.com/badges/share-to-fediverse_v1.svg" alt="Fediverseに共有" style="display:inline-block;height:24px;width:auto;" />
</a>

Fediverseに共有

URLパラメータ

パラメータを正しく設定しないと、動作しないことがあります。必ず設定するようにして下さい。

  • url必須)…ウェブサイトのURL
    (URLのみを使用するソフトウェアもあるので必ず指定すること!)
  • text(任意)…デフォルトのテキストを上書きする際はこちらに指定してください

デモ

URLのみを指定する場合

<a href="https://fedibuzzer.ajr-news.com/share?url=https://fedibuzzer.ajr-news.com" target="_blank">
    <img src="https://fedibuzzer.ajr-news.com/badges/share-to-fediverse_v1.svg" alt="Fediverseに共有" style="display:inline-block;height:24px;width:auto;" />
</a>

Fediverseに共有


カスタムテキストを指定する場合

<a href="https://fedibuzzer.ajr-news.com/share?text=:igyo:&url=https://fedibuzzer.ajr-news.com" target="_blank">
    <img src="https://fedibuzzer.ajr-news.com/badges/share-to-fediverse_v1.svg" alt="Fediverseに共有" style="display:inline-block;height:24px;width:auto;" />
</a>

Fediverseに共有

ボタンを埋め込む

以下のコードを、シェアボタンを実装したい場所に記述して下さい。

<script src="https://fedibuzzer-api.ajr-news.com/api/v1/script"></script>

以下のように表示されます。

オプション

<script>タグに属性を指定することで、見た目や動作をカスタマイズできます。

<script data-color="dark" data-window="popup" src="https://fedibuzzer-api.ajr-news.com/api/v1/script"></script>
  • data-text: シェア時のテキストを上書きできます。\nで改行できます。
  • data-color: カラーモードの変更。
    • auto: 端末のカラーモードに合わせる
    • light: ライトモード(デフォルト
    • dark: ダークモード
  • data-credit: 右下のクレジットの表示有無(falseで非表示)
  • data-window: シェア時の挙動。
    • 未指定: 新しいタブで開く
    • popup: 別ウインドウで開く

APIを使用して実装

インスタンスの情報は、以下のアドレスに問い合わせることで参照できます。

GET https://fedibuzzer-api.ajr-news.com/api/v1/instance/<YOUR_DOMAIN>

レスポンス

{
    "status": 200,
    "body": {
        "name": "Misskey",
        "urlScheme": "https://misskey.io/share?text=__TEXT__"
    }
}

body.urlSchemeの識別子を以下の要領で置き換え、シェアURLを作成して下さい。

  • __TEXT__: シェア時に記載されるテキスト
  • __URL__: 現在閲覧中のWebサイトURL

エラーハンドリング

エラー発生の有無に関わらず、HTTPコードは常に200を返します。

エラーが発生したかどうかの確認は、レスポンス内のstatusから行って下さい。

  • 200: 成功
  • 400: 送信データの不正
  • 500: サーバー側の問題

サンプルコード

// inputなどでシェア先ドメインを取得
const instanceDomain = 'xxx';

window.fetch(`https://fedibuzzer-api.ajr-news.com/api/v1/instance/${instanceDomain}`).then(async (ctx) => {
    const content = await ctx.json();
    if (content.status != 200) {
        // error handling
    } else {
        const shareText = scriptOptions.text ? scriptOptions.text.replace(/\\n/g, '\n') : `${document.title}\n${location.href} #fedibuzzer`;
        window.open(content.body.urlScheme.replace("__TEXT__", encodeURIComponent(shareText)).replace("__URL__", encodeURIComponent(location.href)));
    }
});

対応ソフトウェア

これらのサーバーソフトウェアを採用していて、nodeinfoを公開しているインスタンスはすべて対応しています。ただし、フォークなどでソフトウェア名を変更している場合は、正しく認識されない可能性があります。

Mastodon系

Misskey系

その他

おまけ

以下のソフトウェアは、あくまで隠し機能として対応しています。正式な実装ではありませんので、これらのソフトウェアが動作対象であることを前提とした実装はお控えください。

クレジット

インフラ管理・運営

AJR-NEWS.com - 投稿型鉄道情報サイト

サービス名考案

小林素顔 - @sugakobaxxoo@misskey.io

ソフトウェア開発・保守

かっこかり - @kakkokari_gtyih@misskey.io

お問い合わせ

AJR-NEWS.comはサーバーリソースの提供のみを行っており、ソフトウェアの開発・保守は「かっこかり」が行います。本サービスに関するお問い合わせをAJR-NEWS.comに行うのはおやめください。

対応ソフトウェアの追加要望

こちらから受け付けています。