bsky.socialにアカウントを作ってみた
今回は、atp(at-protocol)のself-hostingではなく、bsky.social
にaccountを作成してみました。優しい人がbsky.social
のinvite-code
を発行してくれたので、嬉しい。
invite-codeは、こちらの資料がわかりやすいと思います。
rustで書かれたadenosine
というclientが便利です。
$ git clone https://gitlab.com/bnewbold/adenosine
$ cd !$:t
$ brew install cmake
$ cargo build
$ export ATP_HOST=https://bsky.social
$ ./target/debug/adenosine ls at://syui.bsky.social
at://syui.bsky.social/app.bsky.actor.profile
$ ./target/debug/adenosine ls at://syui.bsky.social/app.bsky.actor.profile
at://did:plc:uqzpqmrjnptsxezjx4xuh2mn/app.bsky.actor.profile/self
$ ./target/debug/adenosine get at://did:plc:uqzpqmrjnptsxezjx4xuh2mn/app.bsky.actor.profile/self
{
"cid": "bafyreihkjxz4tl36t5ofn74rsl4lglahdqnpprmbcuza2t5b5kfwysfehu",
"indexedAt": "2023-02-23T01:14:43.377Z",
"takedownId": null,
"uri": "at://did:plc:uqzpqmrjnptsxezjx4xuh2mn/app.bsky.actor.profile/self",
"value": {
"$type": "app.bsky.actor.profile",
"avatar": {
"cid": "bafkreid6kcc5pnn4b3ar7mj6vi3eiawhxgkcrw3edgbqeacyrlnlcoetea",
"mimeType": "image/jpeg"
},
"banner": {
"cid": "bafkreif5z5mbbubxuck3kn4fx7guqeznnlm4ujw7pseozn73p3k6czj5xa",
"mimeType": "image/jpeg"
},
"description": "",
"displayName": ""
}
}
atはprotocolでblueskyがserverに当たるのかな。
blueskyは主にserverのdomain-nameに当てられることが多い印象ですが、例えば、iosのclient-nameにも採用されているみたい。
間違ってるかもしれませんが、大体は下記のイメージを持っています。ns(name-server)はbsky.app
ならapp.bsky
となります。
# https://atproto.com/specs/at-uri-scheme
at://syui.bsky.social/app.bsky.actor.profile
${proto}://${user}.${host}/${ns}.${req}
at://did:plc:
は.well-known
の仕組みに似てる感じなのかな、わかりません。基本的にはid(pubkey?)を参照するusernameより確実性、詳細性が高いものだと思われます。
追記
その後、なにか作りたくなったので、簡単なbotを作ってみた。