55 lines
8.3 KiB
Markdown
55 lines
8.3 KiB
Markdown
|
---
|
|||
|
title: "非iOSユーザがBlueskyアカウントを整備する方法"
|
|||
|
date: 2023-03-12T09:56:34+09:00
|
|||
|
draft: false
|
|||
|
tags: ['tech']
|
|||
|
---
|
|||
|
**■2023年3月15日追記**
|
|||
|
新規登録やプロフィール編集などの基本機能を備えたBlueskyの公式Webクライアントがリリースされたため本エントリの内容は遠からず陳腐化する。
|
|||
|
[https://staging.bsky.app](https://staging.bsky.app)
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
Twitter創業者ジャック・ドーシーが立ち上げた新しい分散型SNS「Bluesky」が話題だ。いや、ごめん嘘ついた。別に言うほど話題じゃない。今は招待制で限られた人しか利用できないし、そもそもiOS向けにしか公式のクライアントが用意されていない。現状ではサーバも一つしかないから分散型の特長を感じさせるような体験にも乏しい。
|
|||
|
|
|||
|
とはいえ、Arch Linux JPコミュニティのSlackで[@syui__](https://twitter.com/syui__)さんが配っていた招待コードをさらっていったのは僕だ。iOS端末なんて一つも持っていないくせに堂々とかっさらっていったのだ。であるからには、やはりなんらかの情報を公開しなくては面目が立たない。結論を申し上げると、有志の作りし非公式クライアントやツールを駆使すれば、非iOSユーザでもそこそこBlueskyを試すことができた。
|
|||
|
|
|||
|
基本的な理解として、BlueskyはActivityPubとは異なる新しい分散型プロトコルを採用している。「AT Protocol」と銘されたそれはまだ大部分が開発中ではあるが、本エントリの内容を理解するにはさしあたり下記の単語を抑えておけばよい。詳細情報については[ここ](https://qiita.com/gpsnmeajp/items/eb665d639f088b85454e)を参考にされたし。
|
|||
|
|
|||
|
**■DID** 永続的なIDを表す。変更できない。`did:plc:ozpgjte34s7ahpczuznv3gqu`
|
|||
|
**■Handle** 俗に言うユーザIDに相当する。変更できる。`@riq0h.bsky.social`
|
|||
|
**■PDS** 分散型SNSにおけるサーバ、インスタンスに相当する。異なるPDSに移住するとHandleも部分的に変わる。`@riq0h.unkoburi.pages.dev`
|
|||
|
|
|||
|
ActivityPubとの最大の違いはDIDを永続的なIDとして、Handleをもっぱら名前解決に用いることによりアカウントポータビリティ性を高めているところにある。現在のActivityPub実装ではサーバの移住に伴ってFFや投稿内容、アクティビティ情報などの喪失を余儀なくされるが、AT Protocolはデータをユーザローカルにも持たせた上でDIDの連続性を活かしてこれらの問題を解消するつもりのようだ。他にもplc.directoryというDNSルートサーバに似た役割を持つサーバが存在している。
|
|||
|
|
|||
|
現時点でこれらは部分的にしか実装されていないものの、謳い文句を聞く限りではActivityPubよりも分散性に優れた設計方針に思える。というのも、たとえユーザがサーバを引っ越したいと考えていても、そのたびに蓄積した情報の放棄を強いられていては実用上の問題が発生するからだ。ともすれば前もってこの事態を想定して、引っ越しのリスクを減らすべく安牌のサーバ(つまり……最大規模のサーバ!)を選んでおこうか、となりがちである。Mastodonと一部のMisskeyフォークに搭載されている引っ越し機能では一部の情報しか引き継げない。
|
|||
|
|
|||
|
そこへいくとAT Protocolの設計方針は人間の行動原理を変えるほど強力ではないにせよ、自ら分散を試みるユーザの後押しにはぼちぼち役立ちそうな感じがする。もちろん現状では絵に描いた餅に過ぎないが、ジャック・ドーシーの豊富な資金力をもってすれば実現の日はそう遠くないだろう。ひとまずは期待ageと言ったところか。将来的にはAT ProtocolとActivityPubの間で規格争いが起きたりするのかもしれない。
|
|||
|
|
|||
|
さて、ではさっそくBlueskyアカウントの整備に移る。読者のあなたはBlueskyの招待コードを持っており、それでいながらiOS端末は持っていないものとする。BlueskyにはAndorid向けのアプリはおろかWebクライントも公式には存在しないため、通常の手段では新規登録すら行えない。そこで有志製作の[Bluesky Account Creator](https://bluesky-account-creator.vercel.app)を使う。その名の通りアカウントを作ることができる。
|
|||
|
|
|||
|
アカウントの作成が済んだら次は非公式のWebクライアントで動作確認を行う。すでにいくつか種類が存在しているが、僕のお気に入りは[Skylight](https://penpenpng.github.io/skylight/#/)だ。見た目は簡素でも必要十分の機能が備わっている。まずはこれにログインして適当に投稿する。僕はしばらく排便を記録していた。
|
|||
|
|
|||
|
![](/img/186.png)
|
|||
|
|
|||
|
何回がつぶやいているとじきに日本語話者からフォローされるので積極的にフォローを返す。とにかくタイムラインを埋めなければ使い勝手もなにも分かったものではない。引き続き、プロフィール欄をいじっていく。しかし現行の非公式Webクライアントにはプロフィールを編集する機能が備わっていないので、ここでまた別のツールを利用する。
|
|||
|
|
|||
|
[Upload Profile Images Form for Bluesky](https://mimonelu.github.io/klearsky/#/upload-profile-images-form)はプロフィール画像をアップロードするためのツールだ。バナーはともかくサムネイルが未設定なのは不審者感が際立っていただけない。ぜひとも設定しておきたい。[ATP-Practice](https://nikolat.github.io/atp-practice/)ではさらに網羅的にプロフィールの設定が行える。僕の場合はなぜか画像の設定だけうまくいかず両方を併用した。
|
|||
|
|
|||
|
最後に、アドバンスドなオプションとしてカスタムドメイン機能を紹介したい。通常、Handleは自ら決めたユーザ名とPDSのドメインの組み合わせで構成されるが、カスタムドメイン機能を用いるとHandleを自分の保有するドメインに置き換えられる。たとえば僕のHandleは`@riq0h.bsky.social`だったが、保有しているドメインを適用すると`@riq0h.jp`がHandleとなる。
|
|||
|
|
|||
|
この機能には**HandleをDIDの名前解決に用いる**というAT Protocolの特性がよく表れている。AT Protocol上においてユーザの一意性はDIDとplc.directoryが保証しているため、Handleをカスタムドメインに置き換えても差し支えがないのだ。これにより、ユーザはどこのPDSに引っ越しても常に同じHandleを維持できる。
|
|||
|
|
|||
|
カスタムドメインを設定する方法は、SkylightのSettingsタブから「Edit your handle」を押下すると教えてくれる。示されたDID等の情報をコピペして、登録しているドメインレジストラでTXTレコードを設定する。サブドメインを使用したい場合は`_atproto.subdomain.domain.TLD`の形式でNameを定める。
|
|||
|
|
|||
|
上記のすべての設定を適用したプロフィール欄は以下の通りだ。特にHandleが`@riq0h.jp`と表示されているところに注目してほしい。僕はユーザIDにかなりこだわる性格なのでこうした機能が備わっているのは素直に好ましく思える。
|
|||
|
|
|||
|
![](/img/187.png)
|
|||
|
|
|||
|
Blueskyが流行るかどうかは完全に未知数だが、今のイーロン朝Twitterの有様では前触れなくSNS戦国時代が幕開けしてもおかしくはない。せめて手が届く範囲だけでも一丁噛みしておいて損はないだろう。
|
|||
|
|
|||
|
## 追記
|
|||
|
昼頃にタイムラインを眺めていたらとても小洒落たWebクライアントを[見つけた。](https://tokimekibluesky.vercel.app/)Handleの変更こそ現行では未対応でもスレッド展開、通知バッジ、画像の投稿機能を備えている。他のクライアントも間もなく追随してくるに違いないとはいえ、こうした切磋琢磨の様子を見られるのも黎明期ならではだ。
|
|||
|
|
|||
|
![](/img/188.png)
|