[WordPress]WP REST APIを使おうとすると403(Forbidden Access)エラーになる

WordPress 4.7から標準実装になったプラグイン「WP REST API」を使って記事の投稿をしようとしたところ、403(Forbidden Access)となり投稿できなかったので、その対処方法です。

事象

Pythonの勉強として、「WP REST API」を使って「Google Colaboratory」環境からWordPressの自動投稿をしました。

この動作確認を行っているときに403(Forbidden Access)エラーが発生しました。

  1. Google Colaboratory」環境、requests.post()を実行した。
  2. 403(Forbidden Access)エラーとなり、WordPressの投稿が出来ない。

環境

  • サーバ : お名前.comレンタルサーバ
  • WordPress Ver. : 5.3.2
  • RESTリクエスト : Google Colaboratory(Python)

原因

原因

WordPressが国外からの「Rest-APIへのアクセス制限」をしていた。(お名前ドットコムの初期設定)

解析

  1. 403(Forbidden Access)エラーであるため、認証情報に誤りがある?
    ⇒同環境から認証不要なrequests.get()を行ったところ同様に403エラーとなったため、認証情報の正誤は本件の原因ではない
  2. 「WP REST API」プラグインは正常に動作している?
    ⇒PCのIEからGETを行ったところレスポンスを受け取ることが出来たため、正常に動作している
  3. 「Google Colaboratory」からHTTPリクエストを投げることが出来ている?
    ⇒他サイト(Googleニュース)にリクエストを投げ、正常にレスポンスを受け取ることが出来ている

WordPressがGoogle Colaboratory(国外)からのHTTP通信、または、REST APIの使用を禁止している可能性が高い!

対処

国外からの「Rest-APIへのアクセス制限」をOFFにする。

  1. 「お名前.com」の「レンタルサーバーコントロールパネル」にて、「基本設定」>「WordPress」をクリックする。
  2. セキュリティ」タブをクリックする。
  3. 国外アクセス制限」の「Rest-APIへのアクセス制限」を「OFF」にする。

対処結果

無事、「Google Colaboratory」環境からWordPressの自動投稿が出来ました。

コメント

タイトルとURLをコピーしました