1
0
hugo/content/blog/2023-02-23-bluesky.md
2024-12-21 21:03:10 +09:00

75 lines
2.9 KiB
Markdown

+++
date = "2023-02-23"
tags = ["bluesky","atproto"]
title = "bsky.socialにアカウントを作ってみた"
slug = "bluesky-atproto"
+++
今回は、atp(at-protocol)のself-hostingではなく、`bsky.social`にaccountを作成してみました。優しい人が`bsky.social`の`invite-code`を発行してくれたので、嬉しい。
- `at://syui.bsky.social`
<iframe src="https://mastodon.social/@syui/109911470860430701/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="400" allowfullscreen="allowfullscreen"></iframe><script src="https://mastodon.social/embed.js" async="async"></script>
[invite-code](https://gitlab.com/bnewbold/adenosine/-/blob/main/extra/adenosine-pds.1.md)は、こちらの資料がわかりやすいと思います。
rustで書かれた`adenosine`というclientが便利です。
- https://gitlab.com/bnewbold/adenosine
```sh
$ 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`となります。
```sh
# 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を作ってみた。
<iframe src="https://mstdn.syui.ai/@ai/109912885584302525/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="100%" allowfullscreen="allowfullscreen"></iframe><script src="https://mstdn.syui.ai/embed.js" async="async"></script>