WordPressのウィジェット編集画面が正常に表示されない問題はGoogle Analyticatorのエラーに起因していた

ウィジェット編集画面が正常に表示されない問題

先日からブログのウィジェット編集画面が正常に表示されない問題が起きていました。

現象としては画面の出力が途中で止まってしまい、ドラッグ&ドロップでのウィジェット編集が一切できない状態でした。特にこの辺りのソースをいじった覚えもなかったので原因がわかわらずしばらく放置してました。

Google Analyticatorのエラーを追っていると…

別件でGoogle Analyticatorというプラグインにエラーが起きており、ダッシュボードでの簡易アクセス表示機能が正しく動いていませんでした。こちらは画面にエラーメッセージが出ていたので少し追ってみることにしました。

フォーラムを見てみるとすでに同様のエラーについて報告が挙がっていました。

Hi guys, getting this error??!!

Fatal error: Uncaught exception 'Google_AuthException' with message 'Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant", "error_description" : "Token has been revoked." }'' in /var/sites/f/fifewebsitedesign.co.uk/public_html/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_OAuth2.php:288 Stack trace: #0 /var/sites/f/fifewebsitedesign.co.uk/public_html/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_OAuth2.php(248): Google_OAuth2->refreshTokenRequest(Array) #1 /var/sites/f/fifewebsitedesign.co.uk/public_html/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_OAuth2.php(225): Google_OAuth2->refreshToken('1/nazVA8sgRYbxS...') #2 /var/sites/f/fifewebsitedesign.co.uk/public_html/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_ServiceResource.php(167): Google_OAuth2->sign(Object(Google_HttpRequest)) #3 /var/sites/f/fifewebsitedesign.co.uk/public_html/wp-content/plugins/google-analyticator/ in /var/sites/f/fifewebsitedesign.co.uk/public_html/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_OAuth2.php on line 288

WordPress › Support » ERROR

そうそう、Google APIの認証まわりのエラーっぽいんですよね。

I have this error message :

"(cas:72) Google Analyticator was unable to authenticate you with Google using the Auth Token you pasted into the input box on the previous step.

This could mean either you pasted the token wrong, or the time/date on your server is wrong, or an SSL issue preventing Google from Authenticating.

Try Deauthorizing & Resetting Google Analyticator.

Tech Info 0:HTTP Error: (0) Problem with the SSL CA cert (path? access rights?)"

WordPress › Support » Google analyticator problem, cas 72

エラー発生行のソース追ってみるとcacerts.pemというSSL CA用証明書見てるところ(cURLなんちゃら)でHTTPエラーになってたので、見てる証明書が古いんじゃないか疑惑が出てきました。もしくは指定されたパスに置かれてないとか?

で、cURLのサイトから最新のやつ持ってきてリネームして置いてみたのですが状況変わらず。パスの置き場は鯖側の領域な気がしたのでちょっとわからず。

プラグインに内包されてる「google-api-php-client」配下のソース一式がGoogle API関連っぽかったので、APIの仕様変更に追従してない(ヘッダーに2010年とか入ってたけど2014年版も見かけた)のかなとか色々追ってはみたものの、いかんせん専門外な分野だったので途中から頭痛くなってきたので諦めました。

プラグインのエラーに起因?

上記エラーの解決策が全然出てこないのでフォーラムの他の投稿も覗いてみると「Broken!! crashes my widgets page」やら「Detected some problems with widgets」やらウィジェット編集できなくなった問題の報告を見つけました。

「えっ?あれGoogle Analyticatorのせいなの?」半信半疑ながらプラグインを停止してみると、見事にウィジェット編集画面が正常に表示されました。

とはいえエラーが解消されないままプラグイン止めて「ハイ、解決」ってのは納得できない性分なので、もう少し見てみることに。

設定のリセットで諸々解決

Google Analyticatorの設定を見ると「Reset」という項目がありました。結論から言うと紐付けているGoogleアカウントを一旦解除し、認証しなおしてみるとGoogle Analyticatorのエラーが解消されウィジェット編集画面も正常に表示されました。

おいおいこれまで調査したやつ全部無駄だったのかよ…って感じですが、とりあえず諸々の問題が解決したので良しとします。

しかしながらこれまで問題なく動いていたものが急におかしくなるパターンはキツいですね。正直それほど深く考えず使ってるプラグインも多いのでこういう時に苦労します。

今回学んだこと

具体的な原因はわからず終いでしたが、あんまり時間かけたくないのでここでクローズ。今回は以下のことを学びました。

  • Google APIの仕様変更に追従できていないケースがある
  • 証明書の有効期限が切れている可能性を疑う
  • 外部サービスのアカウントと紐付けている場合は認証しなおしで解決するかも

今後同様のエラーに遭遇した場合、この辺りも調査対象とすることにします。