技術記事については、Qiitaにも稀に投稿しています。

WordPressのプラグイン"AmazonJS"で、RequestExpiredのエラーが出た時の対処方法

wordpress_white

WordPressの著名なプラグインに「AmazonJS」というものがあります。

Amazon Product Advertising APIを用いて、Amazonの商品のアフィリエイトをいい感じにブログに挿入することができる便利なプラグインです。

このブログ(超日記)の中でも度々、関連商品の紹介に使っているのですが、先日急に掲題のようなエラーが発生して一時的に使えなくなる(&既存の記事はデザインが適用されなくなる)事象が発生したので対処方法をメモします。

今回発生したエラー

WordPressの記事執筆画面で、AmazonJSのボタンを押下し、モーダル上で商品のキーワード検索をした際に以下のエラーが発生しました。

amazonjs_error

リクエストの有効期限切れエラー、って感じなのだけど、記載されているタイムスタンプが特に以前のものとも思えなかったのでちょっとハマりました。

原因

確固たるやつは不明なのだけど、さくらのVPS上の時計(サーバの時計)がズレていたことが原因だったっぽいです。

対処

サーバの時計(上)と、NTPサーバの時計(下)ち比べると、確かに25分くらいズレていたようです。下のntpdateコマンドで確認&修正することができます。

$ date
2016年  8月  7日 日曜日 20:16:33 JST

$ sudo ntpdate ntp.nict.jp
 7 Aug 20:40:11 ntpdate[10570]: step time server xxx.xxx.xxx.xxx offset 1363.239732 sec

確認

$ date
2016年  8月  7日 日曜日 20:40:17 JST

システムクロック -> ハードクロックに同期

$ sudo hwclock --systohc

AmazonJSのキーワード検索を確認

amazonjs_correct

記事上での正しい表示例

一応(また叩けなくなっても大丈夫なように)画像としての画面キャプチャを貼っておきます。

toeic_book

ちなみに、本来のプラグインで表示させるとこんな感じ。

[amazonjs asin="4757411219" locale="JP" title="新TOEICテスト 直前の技術—スコアが上がりやすい順に学ぶ"]

ちなみに、今回対処時に、"sudo yum -y --skip-broken update"とかもやりましたが、それだけでは直らなかったので上記の時計合わせを実施した次第です。