看了 atproto 的 Python SDK 說明,不會太難寫,就花了點時間整理一版出來,另外順便 refactor 之前的 code。
比較特別的是用的是 username + password 的登入方式,而現在比較主流的 app id + token:
client = Client() profile = client.login('my-handle', 'my-password') print('Welcome,', profile.display_name)
不過在 Bluesky 網站上看到有看到 application password 的設計,在「App Passwords」這邊可以建立,然後建立時可以設定要不要讓 app 讀到 direct message,算是很基本的 scope 設計概念吧?
另外一個遇到的是撞到 Rate Limits,原因是因為我的 code 是先 login 後再開始檢查 rss feed 裡面是不是有新的 entry 要同步,但是 login 會吃 rate limit quota,所以一下就用光了。
之後改成 lazy initialization,只有在偵測到有新的 post 要發的時候才去 login,然後再等幾個小時讓 quota limit 清空後就正常了。
另外前面兩篇有提到改用 mise 管理語言的版本環境後遇到一些小問題 (這邊的話是 Python),但有找到還可以接受的 workaround 就算是處理掉了。