AtProtocolを使ってBlueskyにPythonからPostする
AT Protocol SDKのPythonラッパーであるThe At Protocol SDK for Pythonを使って、BlueskyへのPythonによるPost投稿を試してみました。
過去に公開した、分散型SNSへの投稿を試す記事は以下
Mastodon.pyを使ってPythonからトゥートする
Misskey.pyを使ってPythonからノートする
注意点
At Protocolとは、Blueskyによって現在開発中の、大規模分散型ソーシャルアプリケーションのためのプロトコルです。
まだ既存の分散型SNSと比較して実装されている機能が少ないため、今後破壊的な仕様変更が起こる可能性があります。
また、本記事で使用しているThe At Protocol SDK for Pythonも、v1.0.0までは過去のバージョンとの互換性を考慮せずに開発を進めると記載されています。
本記事ではv0.0.14時点の情報を元に記載していますので、最新のドキュメントと照らし合わせながらお読みください。
環境構築
Python環境の構築
Pythonの開発環境が構築できていない場合、以下の記事を参考に環境構築を行なって下さい。
The At Protocol SDK for Pythonのインストール
pipからThe At Protocol SDK for Pythonをインストールします。
pip install atproto
実装
それでは、実装を進めていきます。The At Protocol SDK for Pythonの公式ドキュメントはこちら。Introduction
の項目に従って実装していきます。
初期化からPostまで
それでは、初期化からPostまでのコードを書いてみます。
Clientコンストラクタの引数へBlueskyインスタンスのURLを指定します。
この引数は省略可能で、省略した場合は接続先がbsky.app
になります。
本記事執筆時点では、アクセストークンなどを用いた認証方法は提供されていませんので、login
メソッドではユーザーネームとパスワードを直接使用して認証を行います。
あとは、send_post
メソッドを呼べば、任意のテキストをPostすることができます。
from atproto import Client
# 初期化
# Clientのコンストラクタで引数を省略すると、bsky.appへ接続します
api = Client()
# 任意の接続先を指定したい場合は、以下のように記述します
# api = Client('BlueskyインスタンスXRPCのURL(例:https://bsky.social/xrpc)')
# ログイン
api.login('ユーザーネーム or メールアドレス', 'パスワード')
# Post
api.send_post('Hello World')
以上です。
現時点ではThe At Protocol SDK for Python以前に、At Protocol SDK自体の機能もStableではありませんが、気軽に試せるような環境は用意されていますので、リファレンスを当たりながら色々と試してみると面白いです。
Discussion