Site cover image

Site icon image記事一覧

自身の疑問に答えるメモ置き場
2023-12-07

【Bluesky API】「BadRequestError createdAt must be an valid atproto datetime (both RFC-3339 and ISO-8601)」の対処法

起きていた事象

Blueskyに対してAPIで投稿を行っているBotがあるのですが、それが最近こけ始めました。

エラー内容を見てみると、リクエスト時に指定しているcreatedAtというパラメータが不正とのこと。

 {
  "error": "InvalidRequest",
  "message": "Invalid app.bsky.feed.post record: createdAt must be an valid atproto datetime (both RFC-3339 and ISO-8601)"
}

対処法

以下の形式でcreatedAt を設定するとエラーなくAPIにリクエストが送信できました

import datetime
datetime.datetime.now(tz=datetime.timezone.utc).replace(tzinfo=None).isoformat(timespec="milliseconds") + "Z"

原因

API側のcreatedAt に対するバリデーションに引っかかっていた。

↓エラー内容的にはここ。

↓具体的には、ここに記載されているDatetimeの形式に合わせてあげる必要があります

参考