カスタムドメインをハンドルとして設定する
独自ドメインをハンドルとして使用できる。
(PDSを独自ドメインで建てるという方法もある)
変更前の注意点
ハンドルを変えると元のハンドルは他の人が取れるようになる
具体例: gpsnmeajp.bsky.socialの人が、gpsnmeajp.achetaria.comにHandleを変更したので、別の人(ここでは本人の別メールアドレス)がgpsnmeajp.bsky.socialを取得した。
https://scrapbox.io/files/6407436ee75994001b78ec21.png
設定方法
1. 自分のDIDを知る
公式アプリまたは 公式サイト から以下のメニューをたどると自分のDIDがわかる DIDの形式は did:plc:xxxxxxxxxxxxxxxxxxxxx
Settings (設定)
-> Change Handle (ハンドルを変更)
-> I have my own domain (自分のドメインを持っています)
-> DNS Panel
2. DNS で did を記載したTXTレコードを設定する
トップレベルドメインの場合 : txt _atproto did=did:plc:xxxxxxxxxxxxxxxxxxxxx
hostname (ホスト名) : _atproto
type (レコード種別) : TXT
value (値) : did=did:plc:xxxxxxxxxxxxxxxxxxxxx
Linux上でDNSレコードを確認するコマンドは dig -t TXT _atproto.yourdomain
サブドメインの場合: txt _atproto.yoursubdomain did=did:plc:xxxxxxxxxxxxxxx
hostname (ホスト名) : _atproto.yoursubdomain
type (レコード種別) : TXT
value (値) : did=did:plc:xxxxxxxxxxxxxxxxxxxxx
Linux上でDNSレコードを確認するコマンドは dig -t TXT _atproto.yoursubdomain.yourdomain
(おまけ) ショートリンクの設定も可能です。たとえば bsky.example.com にアクセスすると example.com のBluesky のプロフィールページににリダイレクトされるようにできます。
(例1) https://bsky.example.com → https://bsky.app/profile/example.com
(例2) https://hoge.example.com → https://bsky.app/profile/hoge.example.com
(例3) https://bsky.hoge.example.com → https://bsky.app/profile/hoge.example.com
hostname (ホスト名)
(例1) ルートドメインの場合 : bsky または bluesky
(例2) サブドメインの場合 a) : yoursubdomain ※Aレコードが設定されていない場合
(例3) サブドメインの場合 b) : bsky.yoursubdomain または bluesky.yoursubdomain
type (レコード種別) : CNAME
value (値) : redirect.bsky.app. <-- 最後の.(ドット)を忘れないように!
3. 公式アプリまたは 公式サイト でハンドルを独自ドメインに変更する DNSの設定が完了したら公式アプリまたは 公式サイト から以下のメニューに進む Settings (設定)
-> Change Handle (ハンドルを変更)
-> I have my own domain (自分のドメインを持っています)
-> DNS Panel
設定したいドメイン名を入れて Verify DNS Record ボタンを押す
以下は古い手順
事前に認証してJwtを取得しておく必要がある。
元に戻すときは、xxxxx.bsky.socialを指定して再度APIを叩く
カスタムドメインの設定に対応したツール
Settingsタブ→Change my handle...から
https://scrapbox.io/files/64073e512e7f44001c734d77.png
Tips
com.atproto.handle.update をカスタムドメインを指定してコマンドを実行するという方法もある
同じAPIが、******.bsky.social で名前変えるのにも使える。空いている名前なら好きに使えるらしい。
なんなら何回でも変えられるらしい。
API を叩いてすでに取得されている場合は次のようなメッセージが返るらしい。
{"error":"InvalidRequest","message":"Handle already taken: example.com"}
無効(_atprotoが設定されていなドメイン・サブドメイン)の場合は、500 Internal Server Error が返る。