Memo Bluesky投稿用のクラスを作りました。 import os import atproto from PIL import Image from io import BytesIO class BlueSky: def __init__(self,account,password,base_url="https://bsky.social"): self.client = atproto.Client(base_url=base_url) self.client.login(login=account, password=password) def send_massage(self,message:str=None): try: res = self.client.send_post( text=message ) except Exception as e: print(e) res = False return res def send_image(self,message,image_path,image_alt=""): img = Image.open(image_path) # bytes型に変換 img_byte_arr = BytesIO() img.save(img_byte_arr , format=img.format) img_byte_arr = img_byte_arr.getvalue() self.client.send_image( text=message, image=img_byte_arr, image_alt=image_alt ) if __name__ == "__main__": bs = BlueSky( account=os.environ.get('BLUESKY_ACCOUNT'), password=os.environ.get('BLUESKY_PASSWORD') ) bs.send_image(f"message" ,image_path="画像のパス") Blueskyにメッセージを投稿するときに、URLはそのまま文字列として投稿されてしまうので、その点は改良が必要