私はブログやサイトを作って、そこに広告を掲載することで収益を得る副業を長年続けています。このブログの場合であれば、記事の上や下に表示されるアドセンス広告と記事の中に登場する商品などを紹介するアフィリエイト広告の2つが収益のポイントになります。
しかし、最近アフィリエイト広告で使用しているプラグイン「Rinker」で不具合が発生しており、アフィリエイト広告の掲載が思うようにできない状態になっています。そこで、今回は「Rinker」の不具合で困っているAmazonの商品が検索できな不具合について改善できる方法を調べてみたいと思います。
- ✅Rinker 1.13.0でも認証エラーは発生
- ✅多くの読者はポチップ移行が無難
- ✅クラシックエディターはPHP修正で対応
物販系アフィリエイトプラグイン「Rinker」とは
Rinkerは商品リンクを簡単に作成できるWordPressプラグイン
Rinkerは、Amazonや楽天市場、Yahoo!ショッピングの商品リンクをまとめて表示できるWordPressプラグインです。
商品画像や商品名、価格、各ショッピングサイトへの購入ボタンを一つのボックス内に表示できるため、物販系アフィリエイトの記事作成を効率化できます。
Amazon・楽天・Yahoo!の商品リンクを一括表示
↑↑見本↑↑
通常、複数のショッピングサイトの商品リンクを掲載する場合、それぞれの広告リンクを個別に作成しなければなりません。
Rinkerを利用すれば、WordPressの投稿画面から商品を検索し、必要な商品リンクを記事内へ簡単に挿入できます。読者が普段利用しているショップを選べるため、購入機会を逃しにくい点もメリットです。
RinkerでAmazonの商品が検索できない原因
「InvalidToken」はAmazon APIの認証エラー
あるときから、Amazonの商品を検索しようとすると、次のようなエラーメッセージが表示されるようになりました。
「401:AmazonAPIのステータスエラー: {“message”:”The authentication token is invalid or malformed”,”reason”:”InvalidToken”,”type”:”UnauthorizedException”}」
もちろん、エラーメッセージが表示されている状態では、RinkerからAmazonの商品を検索することができません。
「InvalidToken」は、Amazonの商品情報を取得するための認証トークンが無効、または正しい形式で生成されていないことを示すエラーです。
Rinkerの商品検索にはAmazon APIの認証情報が必要
Rinkerの「Amazonから検索」を利用するためには、Amazon Product Advertising API、通称PA-API、またはCreators APIの認証情報をRinkerに登録する必要があります。
AmazonはPA-APIからCreators APIへの移行を進めており、現在はCreators APIの利用が推奨されています。
Creators APIを使用する場合は、Amazon側で取得した認証情報IDやシークレットなどを、WordPressのRinker設定画面に正しく登録しなければなりません。
Rinkerをバージョン1.13.0に更新してもエラーが発生
当初は、Rinkerが古いバージョンのままで、Creators APIに対応していないことがエラーの原因ではないかと考えました。
しかし、私が使用しているRinkerのバージョンを確認したところ、Creators APIに対応したバージョン1.13.0へすでに更新されていました。
つまり、今回のエラーは、単純にRinkerのバージョンが古いことだけが原因ではありません。
Rinkerを最新版に更新しているにもかかわらず「InvalidToken」が表示されることから、Creators APIの認証情報が正しく設定されていないか、Rinker側で認証トークンを正常に取得できていない可能性があります。
認証情報を確認しても直らない場合の選択肢
まず確認すべきなのは、Creators APIで発行された認証情報IDやシークレット、バージョンなどが、Rinkerに正しく登録されているかどうかです。
入力ミスや古い認証情報が残っている場合は、正しい情報を登録し直すことで改善する可能性があります。
一方、認証情報を設定し直してもエラーが解消しない場合は、RinkerとCreators APIの認証処理が正常にかみ合っていない可能性も考えなければなりません。
その場合の選択肢は、Creators APIに対応した別の物販系プラグインへ移行するか、Rinkerのプログラムコードを確認して認証処理を修正するかの2つになります。
選択肢1.Rinkerからポチップへ移行する
Rinkerから簡単に商品リンクを移行できる
RinkerのPHPコードを自分で修正するのが難しい場合は、物販系アフィリエイトプラグイン「ポチップ」へ移行する方法が無難です。
ポチップには、Rinkerの商品データを移行するための専用プラグイン「ポチりん」が用意されています。これまで作成した商品リンクを一つずつ作り直す必要がないため、比較的簡単に乗り換えられる点が魅力です。ただし、データベースを書き換えるため、移行前には必ずバックアップを取っておきましょう。
ポチップはRinkerの代替プラグインとして利用できる
ポチップも、Amazon、楽天市場、Yahoo!ショッピングの商品リンクをまとめて表示できるため、Rinkerの代替プラグインとして十分に利用できます。
有料版の「Pochipp Pro」では、セール情報の自動表示や口コミリンクの表示など、Rinkerにはない機能も利用できます。
クラシックエディターではポチップを使用できない
私がポチップへ移行しなかった理由は、ポチップがブロックエディターでの使用を前提としているためです。
ポチップはクラシックエディターには対応していません。私は現在もクラシックエディターを使用しているため、ポチップへの移行ではなく、RinkerのPHPコードを修正する方法を選びました。
選択肢2.RinkerのPHPコードを自分で書き換える
公開されているRinkerの修正コードを利用する
私の場合はクラシックエディターを使用しているため、ポチップへ移行することができません。そこで、もう一つの選択肢であるRinkerのPHPコードを自分で書き換えることにしました。
もっとも、私はプログラムに関する専門知識を持っていません。そのため、自分で修正方法を考えるのではなく、すでに同じ問題を解決した先人の知識を借りることにしました。
調べた結果、AndroPlusで公開されている修正方法を見つけました。Rinkerの「yyi_rinker_main.php」というファイルに記述されているCreators APIの認証処理を、記事内で公開されているコードへ置き換える方法です。
なお、PHPファイルの書き換えに失敗すると、WordPressにエラーが表示される可能性があります。作業は自己責任となるため、必ず修正前のファイルをバックアップしてから進めてください。
エックスサーバーでRinkerのPHPファイルを探す
修正コードが分かっても、WordPressを使い始めたばかりの人は「Rinkerのファイルがどこにあるのか」が分からないと思います。
私はエックスサーバーを使用しているため、XServerTOPページの右上「ログイン」からファイルマネージャーを開きました。エックスサーバーのファイルマネージャーでは、ブラウザ上からサーバー内のファイルをダウンロードしたり、アップロードしたりできます。
ファイルマネージャーを開いたら、通常は次の順番でフォルダを開きます。
◯◯◯◯.jp → public_html → wp-content → plugins → yyi-rinker
WordPressがドメイン直下にインストールされている場合、プラグインの保存場所は「ドメイン名/public_html/wp-content/plugins」です。
「yyi-rinker」フォルダの中に、今回書き換える「yyi_rinker_main.php」というファイルがあります。
修正前のPHPファイルをダウンロードして保存する
「yyi_rinker_main.php」を見つけたら、書き換える前にファイルをパソコンへダウンロードします。
ダウンロードしたファイルは、万一エラーが発生したときに元へ戻すためのバックアップです。「yyi_rinker_main_backup.php」など、修正前のファイルだと分かる名前を付けて、パソコン内に保存しておきます。
ただし、名前を変更したバックアップファイルを、そのままRinkerのフォルダへアップロードする必要はありません。元のファイルをパソコン内に保管しておけば十分です。
修正したPHPファイルをアップロードして上書きする
次に、ダウンロードした「yyi_rinker_main.php」をテキストエディターで開き、AndroPlusで紹介されている部分を修正します。
現在のコード
$curl = curl_init();
$auth_creds = $creator_auth_id . ':' . $creator_secret_key;
$headers = [
'Content-Type: application/x-www-form-urlencoded',
'Authorization: Basic ' . base64_encode($auth_creds),
];
curl_setopt($curl, CURLOPT_URL, 'https://creatorsapi.auth.us-west-2.amazoncognito.com/oauth2/token');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, 'grant_type=client_credentials&scope=creatorsapi/default');
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
修正するコード
$curl = curl_init();
$headers = [
'Content-Type: application/json',
];
$token_payload = json_encode([
'grant_type' => 'client_credentials',
'client_id' => $creator_auth_id,
'client_secret' => $creator_secret_key,
'scope' => 'creatorsapi::default',
]);
curl_setopt($curl, CURLOPT_URL, 'https://api.amazon.co.jp/auth/o2/token');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, $token_payload);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
修正箇所は「get_json_from_amazon_creator_api」という処理の中にあり、Rinkerバージョン1.13.0では2280行目前後が目安です。ただし、環境やバージョンによって行数が異なる可能性があるため、行数だけでなくコードの内容を確認してください。
次に、先ほどの「yyi-rinker」フォルダへ、修正後の「yyi_rinker_main.php」を同じファイル名のままアップロードし、既存ファイルを上書きします。
上書きが完了したら、「yyi-rinker」フォルダをZIPファイル化して、通常のプラグインを追加する方法でアップロードすれば、Rinkerのプラグイン全体が上書きされます。
その後は、WordPressの投稿画面からRinkerの商品リンク作成画面を開き、Amazonの商品を検索します。私の環境では、この作業によって「InvalidToken」のエラーが表示されなくなり、再びAmazonの商品を検索できるようになりました。
ただし、Rinker本体を今後アップデートすると、書き換えたPHPコードが新しいファイルで上書きされる可能性があります。アップデート後に同じエラーが発生した場合は、公式版で問題が修正されているかを確認したうえで、必要に応じて再度対応することになります。
RinkerでAmazonの商品を検索できないエラーの対策まとめ
基本的にはポチップへの移行がおすすめ
RinkerでAmazonの商品を検索した際に「InvalidToken」のエラーが表示される場合、対策としては「ポチップへ移行する方法」と「RinkerのPHPコードを書き換える方法」の2つがあります。
多くの人には、Rinkerからの商品データ移行ツールが用意されているポチップへの乗り換えが無難だと思います。プログラムの知識がなくても移行しやすく、Rinkerと同様にAmazon、楽天市場、Yahoo!ショッピングの商品リンクを作成できます。
クラシックエディターではRinkerの修正も選択肢
一方、私はクラシックエディターを使用しているため、ポチップへ移行せず、RinkerのPHPコードを書き換える方法を選びました。
今回紹介した方法で、私の環境ではAmazonの商品を再び検索できるようになりました。ただし、PHPファイルの修正にはWordPressでエラーが発生するリスクがあります。必ず元のファイルとサイト全体のバックアップを取ったうえで、自己責任で作業してください。
また、今後Rinkerをアップデートすると、修正したPHPファイルが上書きされる可能性があります。アップデート後は、Amazonの商品検索が正常に利用できるかを確認する必要があります。
よくある質問(FAQ)
Q1. RinkerでAmazonの商品を検索できない原因は何ですか?
「InvalidToken」や「UnauthorizedException」と表示される場合は、Amazon Creators APIの認証情報が正しく処理されていないことが主な原因です。認証情報ID、シークレット、バージョンの設定内容を確認してください。
Q2. Rinkerを1.13.0に更新してもエラーが直らない場合はどうすればよいですか?
Rinkerを1.13.0に更新してもエラーが続く場合は、Creators APIの認証情報を再確認します。それでも解消しない場合は、ポチップへの移行またはRinkerのPHPコードを修正する方法があります。
Q3. Rinkerからポチップへ商品リンクを移行できますか?
ポチップには、Rinkerの商品データを移行するための専用ツールが用意されています。既存の商品リンクを一つずつ作り直す必要がないため、PHPコードを修正できない人にはポチップへの移行が無難です。
Q4. クラシックエディターでもポチップを使用できますか?
ポチップはブロックエディターでの使用を前提としており、クラシックエディターには対応していません。クラシックエディターを継続して使用する場合は、RinkerのPHPコードを修正する方法が選択肢になります。
Q5. RinkerのPHPファイルを書き換える際の注意点は何ですか?
PHPファイルの書き換えに失敗すると、WordPressでエラーが発生するおそれがあります。作業前にサイトと元のファイルをバックアップしてください。また、Rinkerをアップデートすると修正内容が上書きされる場合があります。







コメント