BlueskyPost
Extension:BlueskyPost は、記事の作成・更新(編集)後に編集概要をBlueskyへ自動的にポスト(投稿)する、MediaWiki用の自作Extension(拡張機能)。
投稿例⇒ https://bsky.app/profile/kimagurenote.net/post/3k7bovo3utf2y ※
使い方はExtension:TweetANew※に似ているが、中身は全く異なり、機能は最小限。
初期設定 Setting
Download
BlueskyPost_20230921.zip (9KB) |
Download and unzip it on your MediaWiki extensions directory.
You can use it freely at your own risk. I license it under the Revised BSD License.
⇒English installation guide is here.
LocalSettings.php
Edit LocalSettings.php file to add below.
LocalSettings.php |
/* Extension:BlueskyPost */
wfLoadExtension( 'BlueskyPost' );
$wgBlueskyPostIdentifier = "youraccount.bsky.social";
$wgBlueskyPostPassword = "< app password set here >";
- wgBlueskyPostIdentifier にはBlueskyのハンドル名(***.bsky.social またはドメイン名、先頭の@は除く)またはアカウント名(did:plc:で始まる英数字)を入れる。
- $wgBlueskyPostPassword には、本Extension専用に新規に発行した App passwordを入れる。アカウントのパスワードとは異なる。
And check Special:Version on your wiki.
追加設定 Additional settings
リンクカードに画像を添付する
TwitterはURLを付けてツイートすれば自動でOGの情報を取得してリンクカードを作ってくれるが、Blueskyはポスト(投稿)時にアプリ側でリンクカード情報を添付する必要がある。
本Extensionは v0.2.0 より、リンクカード(画像付き)の添付に対応した。ただしページから画像を抽出する都合上、画像を添付するには Extension:PageImages がインストールされている必要がある※。
Extension:PageImages がインストールされていない場合、または記事に適切な画像が貼り付けられていない場合は、画像無しのリンクカードになる(右図)。
LocalSettings.php |
wfLoadExtension( 'PageImages' );
チェックボックスの規定値
編集画面に追加されるチェックボックスの規定値を true / false で指定できる。省略時は false(チェック無し)。投稿する機会が多い場合は true にしておくと便利。
LocalSettings.php |
$wgBlueskyPostChecked = true;
タイムアウト
このExtensionは、AT Protocol API の呼び出しタイムアウトを規定で10秒にしている※。
投稿がタイムアウトする場合はタイムアウト時間を延ばしてみると良いかも。
LocalSettings.php |
$wgBlueskyPostTimeout = 12.5;
既定の言語
Blueskyに通知する言語を指定できる。MediaWikiから取得できる場合はその言語コードを付けて投稿するが、※MediaWikiから取得できない場合があるので、その場合はこの指定値が使われる。
LocalSettings.php |
$wgBlueskyPostLangs = [ "ja", "en-US" ];
無指定でも特に問題はないが、投稿(ポスト)に「Translate this post」という表示(Google翻訳へのリンク)が出てくるので、これを消したい場合は指定すると良い。
指定できる言語コードは ISO 639-1 準拠の英字2文字(と一部のサブタグ)だが、Blueskyがどこまで対応しているかは作者は把握していないので、自己責任でどうぞ。
機能の無効化
新規作成または更新(編集)のいずれかで本機能を無効にしたい場合は、LocalSettings.php に下記の指定をする。これによりチェックボックスが表示されなくなる。
LocalSettings.php |
/* suppress to use this extension on create (new) pages */
$wgBlueskyPostSuppressNew = true;
/* suppress to use this extension on edit (exist) pages */
$wgBlueskyPostSuppressEdit = true;
ポストする文言の変更
- MediaWiki:blueskypost-post-edit - 既存の記事を編集したとき
- MediaWiki:blueskypost-post-new - 新規記事を作成したとき
これらを書き換える(編集する)ことで変更できる。
- $1 - 記事名
- $2 - URL
- $3 - 編集概要欄に入力された文言
制限事項
このExtensionは NS_MAIN または $wgContentNamespaces で指定されている名前空間(カスタム名前空間)でのみ動作する。
細部の編集では動作しない(チェックが入っていてもポストしない)。
Blueskyの1ポストで投稿できる字数は300字まで。日本語等のマルチバイト文字も1と数える。ただし本ExtensionではURLを含むと有効字数が若干減る。例えば URLが1つの場合は、少なくとも https:// 8字分の差分が生じる※。このためBluesky公式Webサイトから投稿する場合よりも投稿可能長さが減少し、292字またはそれ以下になる※。
RichTextはURLのみ対応している。編集概要欄を投稿するという本Extensionの特性上、URL以外(メンションなど)には対応予定なし。
標準ライブラリがTypeScriptしかないので、atproto公式の解説を見ながら機能限定で自作した。よって AT Protocol の仕様変更があってもすぐに対応できないと思う。
Bluesky (AT Protocol) 自体が開発中で仕様も変わるかもしれないので、もうしばらくは技術的な試行や試験的な運用に留めておくのが無難だと思う。
Bluesky
新規アカウントの作成
2024年 2月 7日(日本時間)より、招待コード不要で新規アカウントを作れるようになった。
招待コード (invite code)
2024年 2月初旬までは開発中のため新規アカウント作成が制限されており、Blueskyのアカウント作成に招待コード (invite code) が必要だった。
招待コードは、waitlistに登録しておくと、忘れた頃に※メールで送られてくる。 しばらく待つことにはなるが、もし興味があれば早めに登録しておくのが良いと思う。 【https://bsky.app/ を開く → Create a new account → Next → Join the waitlist → メールアドレスを登録】
また、既存ユーザーには招待コードが概ね2週間毎※に1つ配付されるので、すでに使っている知人等からもらう方法もある。 いずれも無料。
なお、当サイトでは招待コードの配布はしないので(転売されるおそれもあるため)、招待コードに関する問い合わせはしないでいただきたい(返信しない)。
ちなみに招待コードを使って新規アカウントが作成されると、紹介した人にも通知が届く(右図)ので、もし友人等からもらったアカウントを転売すると、招待してくれた人にバレるようになっている。くれぐれも失礼なことはしないようにしよう。
ハンドル名を独自ドメインにする
Blueskyアカウントを作成すると「@username.bsky.social」というハンドル名になるが※、usernameの部分は任意に変更できる※。
独自ドメイン名を持っている※場合は、ハンドル名を「@example.com」のようなドメイン名に変更できるので、ドメイン保持の証明を兼ねることができる。今後Blueskyが一般公開された後は、Webサイトの「公式アカウント」を作って更新告知などに使いやすい※と期待される。
ちなみにAPIでは Decentralized Identifiers (DID)を使ってユーザーを特定する(ハンドル名で照会してDIDを取得する)。DIDは変更できない。言い替えると、見た目がそっくりでもDIDが違えば別人。
メールアドレス
アカウントの作成にはメールアドレスが必要だが、Blueskyに登録したメールアドレスはAPIを叩くと誰でも容易に引き出すことができるので要注意。
今はまだspam配信に使われているといった話は聞かないが、念のためGmailなどのフリーメールアドレスを作って登録するのが良いかも。
また、アカウント作成後にメールアドレスを変更することができなかったが、2023年10月10日頃よりメールアドレスを変更できるようになった※。
App password
Blueskyには今のところOAuthのような認可型の認証の仕組みが未実装で、仮に「App password」が使われている。
アカウントの本パスワードの他に任意にパスワードを発行できるもので、App password ではポスト(投稿)や閲覧などはできるが、アカウント管理関連の操作ができない。これをアプリ毎に発行しておくと、もしアプリにセキュリティホールがあったり悪意ある人に見られたりしてもアカウントが乗っ取られることを防げるし、悪用された App password を破棄することで個別に止めることができる。
よって、App password は使い回さず、アプリ毎に発行するのが原則。
この「App password」は仮の仕組みで、いずれ「3rd Party Authentication and Authorization」が導入される計画になっている。「This will likely incorporate existing auth standards.」となっているので、いずれOAuthのような仕組みが導入されるのだろうか。
History
- 2023.09.21 (v0.2.0.1)
- リンクカード概要欄先頭の空白などを除去
- 2023.09.20 (v0.2.0)
- リンクカード(画像と記事概要付き)に対応
- 2023.09.13 (v0.1.0)
- 初版(文字投稿のみ)