とりあえずわかったことからあれこれ書き足していこうかと思います。
実行環境
ハードウェア | OS | Python |
---|---|---|
RaspberryPi4 | Linux raspberrypi 6.6.62+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024-11-25) aarch64 GNU/Linux | 3.11.2 |
atprotoのインストール
bash
$ pip install atproto
Clientライブラリの呼び出しと初期化
Python
from atproto import Client
client = Client()
ログイン
Python
client.login("XXXX.bsky.social", "XXXX-XXXX-XXXX-XXXX")
loginメソッドの引数は第一引数がログインID、第二引数がアプリパスワードです(通常のログイン時のパスワードではないことに注意してください)。アプリパスワードは現時点(2024/12/14)で設定のプライバシーとセキュリティから発行してください。
セッションストリングの取得
Python
client.export_session_string()
セッション分けたい時とかに使いそうですね。
ポストする
Python
client.send_post('Hello World')
自分のポストを取得する
Python
posts = client.app.bsky.feed.post.list(client.me.did, limit=1)
for uri, post in posts.records.items():
print(uri, post.text)
postのurlと内容が返ってきます。
limit=の部分で取得数を調整できます。
任意のアカウントのポストを取得する
Python
res = client.app.bsky.feed.search_posts({"q":"from:XXXX.bsky.social","limit":1})
print(res.posts)
これもlimitの部分で取得数を調整できます。返り値にはメタデータも含まれているので綺麗に出るよう整形が必要ですね。