私は、自分が運営している別サイトの記事の作成のために、Zapierという海外のWebサービスを利用しています。
便利に使わせて頂いてたのですが、ある時点から、エラーが出てWPサイトへの記事投稿に失敗するようになってしまいまして…
原因の特定から解決までに少々手間取ったので、メモがてら記事にまとめておこうと思います。
Zapier上にエラーの表示あり
私はこのサイト以外にも幾つかサイトを運営していて、その中のあるサイトでの記事作成のために、Zapierという海外のWebサービスを利用しています。
Zapier自体についての詳しいお話はここでは割愛させていただきますが、ザックリいうと、複数のwebサービスを連携させて自動処理をさせることができるものです。
私の場合、自分が特定のSNSで投稿をした時に、その内容をWordPressサイトのほうにも下書き記事として同時投稿させる…という自動処理を設定してありました。
長いこと便利に使わせてもらっていたのですが、ある時点からZapierの実行ログにエラーが表示され、Wordpressへの記事投稿の処理の部分だけが実行されないようになってしまいまして…。
エラーコメントの日本語の部分を読んでみると違反だの通達だのと何やら恐ろしげなことが書いてありますが、コメントの最初のほうに (code 403) と表示されています。
エラーコード403が出る状況って、ザックリ言えばアクセス権がなくてアクセスを拒否された時です。
なので、このエラーコメントは「Wordpressに記事を投稿しようとしたけど、Wordpressにアクセスできなかったから投稿できませんでした」という意味だと解釈しました。
心当たりはWordfenceのアップデート
いやーそう言われましても、つい数日前まではなんの問題もなく記事投稿されてたじゃないですか。
数ヶ月ほどZapierのサイトにアクセスすらしていなかったので、Zapier側の自動処理の設定をうっかり変えてしまったということはありませんし…
WordPress側で最近変えた点といえば、Wordfenceのプラグインをアップデートして、2段階認証機能を有効に設定したことぐらいしか心当たりがありません。
十中八九これじゃん。
早速、Wordfenceで新しく追加された2段階認証に関する設定がどんな状況になってるか見てみました。
Wordfenceの設定変更で解決
端的に申し上げると、解決策は『Wordfence側でXML-RPCの2段階認証をスキップさせる』でした。
2段階認証機能の設定ページを見てみると、このような項目があります。
Require 2FA for XML-RPC call authentication
You must choose the “Skipped” option if you use the WordPress app, the Jetpack plugin, or other services that require XML-RPC.
※WordPressアプリ、Jetpackプラグイン、またはXML-RPCを必要とするその他のサービスを使用する場合は、「スキップ」オプションを選択する必要があります。
とのこと。
Zapier経由での投稿処理は「XML-RPCを必要とするその他のサービス」に該当するので、Zapierから何か投稿させたい場合は、この設定項目を『SKIPPED』にしておかないといけなかったようです。
初期状態では『Required(2段階認証必須)』になっているので、これを手動で『SKIPPED』に変更すると、XML-RPCで投稿や編集をしようとする際に2段階認証させないようになります。
まとめ
何が原因で投稿ができなくなったのか調べるのに少し手間取ってしまいましたが、Wordfenceの2段階認証の設定が理由だと判明し、無事にZapierのエラーを解消することができました。
がっちりガードしてくれてて頼もしい限りですが、初期設定に任せっきりなのも危ういですね。新機能を有効にした時によく確認しておけばよかったです…。
Wordfenceのプラグインを利用中で、かつZapierなどの外部のWebサービス経由でご自身のWPサイトに何か投稿をしている方。
いつの間にか投稿ができなくなってお困りの際は、Wordfenceの設定のほうも確認してみてくださいね。