日記?感想?

Product Advertising APIを使ったアフィリエイトリンクの処理を見直し

2017.02.14

Amazonの商品をアフィリエイトリンクで紹介するのにAPIを利用しているのですが、久しぶりにAWSにログインすると、カード情報を求められたり、別なページで登録情報を設定しないと本人確認ができなかったり、IAMアカウントってどうやって設定するんだっけ?とややこしいことこの上ないProduct Advertising APIですが、そもそもIAMに表示されるサービス名のecsってなにを指しているんですかね…Amazon EC2 Container Service?

導入した当初から気になってはいたのですが、キャッシュあもあるし、まあいいやと先延ばしにしていた問題を修正しました。

Code: "RequestThrottled"
Message: "AWS Access Key ID: **********. You are submitting requests too quickly. Please retry your requests at a slower rate."

パラメータを投げると、時折上記のようなエラーが返ってくるのですが、この場合商品のリンクや画像は表示されないので、表示されるまでページ自体を再読込する必要がありました。

こういった場合はある程度遅延させてから再度パラメータを投げるわけですが、Amazonの情報を取得するのはajaxによる非同期通信となるため、リクエストを管理することができません。
遅延は各々の処理でしか行われないので、ある一つの遅延中に他の非同期のリクエストがバンバン飛んできます。

とは言え、エラーが返ってくるときもあればえらい待たされるときもあるわけで、あんまり気にしなくてもいいかな、という感じです。
ページを再読込させるよりはマシでしょうということで。

久しぶりにdo-whileなんて使いました。

あと、遅延は1秒なので、Amazonの機嫌が悪いとゆっくり商品画像が出てきます…。

, Amazon, AWS

検索機能をつけました

2015.12.01

右カラムに検索フォームを付けました。

今のところ、スマホ表示というか、ブラウザの幅が小さい時は右カラムを下に並べているのですが、スマホだと縦に長くなってしまうのでメニュー的なものに納めたほうがいいのかなと思ったりもしています。

count.json終了

2015.11.27

週が明けたら終了していました。数を取得しようとすると404が返ってきます。

count.jsoon

そんなわけで代替手段を探していると、OTOTOYの運営をしている会社が代替としてこんなサービスをリリースしているのをみつけました。

不特定多数の検索ワードに対して、TwitterのAPI制限に引っかからずにツイートを取得する方法があるとしたらどんな実装なんだろうと気になるところではあります。

, count.json, Twitter

ツイートボタンの横に吹き出しをつけてみました

2015.11.13

全く関係のないImpress Watchの記事を見ていて、ツイートボタンの横に『リスト』なる吹き出しがついていることに気が付きました。
調べてみると、どうも独自?で入れているようなので……真似してみました。

廃止騒動の時に「カウント数の吹き出しをクリックするとTwitter検索に飛べる機能がなくなるのは不便」という意見があって、これは確かにそうだなと思っていたのですが、注意してみてみると、ほかのサイトでも縦レイアウトに同様の吹き出しを付けていたりするのを発見しました。

複数のソーシャルボタンを並べるのが主流ですから、横の吹き出しならまだしも、縦だとTwitterのボタンだけ不自然になるので、当然といえば当然なのかもしれません。

count.jsonはまだ動いているみたいですが、代替手段とか出るんでしょうかね…?

実際に吹き出しを入れてみると、スマホ表示の時に一列に収まらなくなってしまったので、はてなブックマークボタンを短くしました。

, Twitter

アフィリエイトはじめました

2015.10.03

AmazonのProduct Advertising APIを使う時にアソシエイトタグを指定する必要があったので(必須なのかは分かりませんが)、ついでにアフィリエイトを始めてみました。

アフィリエイトリンクがある投稿には『Amazonアソシエイト』というタグを付けることにしました。

APIは呼び出し制限というか、あまりリクエストが多いと課金されるみたいなので、キャッシュ方式にしてみたのですが…Amazonがエラーを吐くようなASINについては毎回リクエストを投げてしまうので、まだまだ改良の余地はありそうです。

追記: エラーもキャッシュするように改良

1 2