概要
タイトルの通りなのですが、昨年2021年11月?12月?頃からQiita API v2 で403 Forbiddenが発生するようになりました。原因を知りたい。。。
— 2022年5月1日追記
最近(2022年5月1日)改善されてます。
原因としては結局分からずですが、どうやらGoogleスプレッドシート x Qiita APIが発生条件のようです。
そして改善策としては、Googleスプレッドシートを 新しいスプレッドシートで作り直しました 。
ソースコードの中身は変えていません。Googleスプレッドシートを新しくしただけ。これだけで改善しました。。。
ということは、Qiita API側ではなく、Googleスプレッドシートの実行環境側に何か原因があったということでしょうか。。。原因がは謎のまま。
詳細
私は Google Apps Script から Qiita API v2 を使ってGoogleスプレッドシートに日々「いいね数」(LGTM数)と「閲覧数」を記録する の記事の通り、1日1回QiitaのAPIを使ってGoogleスプレッドシートにLGTMと閲覧数を記録していたのですが、昨年2021年11月?12月?頃から403 Forbiddenが発生するようになりました。
最初は2週間に1回くらい、次第に1週間に1回くらいになり、ついに今週は1週間で4回ほど。。。
流石になんとかしたいなと思い調べたところ、特に同じ現象になっている方とかいないようで原因不明なので今回投稿してみました。
詳細にすると以下です。
- 1日1回の処理内容
- GET /api/v2/authenticated_user/items:1回
- GET /api/v2/items/:item_id:約50回
- 最初は1日のリクエスト数の上限数とかが減ったのかなと思ったけどAPIドキュメントには以下の記載があり違う。。。
認証している状態ではユーザごとに1時間に1000回まで、認証していない状態ではIPアドレスごとに1時間に60回までリクエストを受け付けます。
-
ユーザの管理画面からaccess_tokenの再発行。
- 12月は一旦これで改善。access_tokenに有効期限とかが設定されたのかなと思い、様子をみることに。
- 最近1月になってからは、access_tokenの再発行でも改善されず。。。
-
処理のDEBUG実行
もしやアカウント毎ではなく、Qiita全体のリクエスト上限数に達してエラーになっている、、、?
ということで原因不明で投稿しました。
誰か回避策ご存知な方いたら教えて欲しいです。
エラー履歴
2022年1月24日:0時 成功
2022年1月25日:0時、8時 403エラー発生
2022年1月26日:0時、8時 403エラー発生
2022年1月27日:0時、8時、12時 403エラー発生
2022年1月28日:0時、8時、22時 403エラー発生
2022年1月29日:0時 成功!!
2022年1月30日:0時 成功
2022年1月31日:0時、8時 403エラー発生
2022年2月1日:0時 成功
2022年2月2日:0時、8時 403エラー発生
2022年2月3日:0時、8時 403エラー発生
2022年2月4日:0時、8時 403エラー発生
2022年2月5日:0時 403エラー発生
2022年2月5日:8時 成功!!
2022年2月6日:0時 403エラー発生
2022年2月7日:0時 成功!!
2022年2月8日:0時 403エラー発生
2022年2月9日:0時 成功!!
2022年2月10日:0時 成功!!
2022年2月11日:0時 403エラー発生
2022年2月12日:0時 403エラー発生
2022年2月13日:0時、10時 403エラー発生
参考
Qiita API v2 ドキュメント
https://qiita.com/api/v2/docs