ポイントネタを書こうと思っていますが、最近はあまりニュースがありません。10月1日に出尽くした感じでしょうか。先日から技術ブログになりつつあります。今回も技術関連です。
Twitterの仕様変更により、ポイ探や買いログの自動更新時のツイートが失敗しているようでした。そういえば、なにか変更になるというニュースを見たなぁくらいにしか思っていませんでしたが、最近その仕様変更があったようです。
ポイントネタを書こうと思っていますが、最近はあまりニュースがありません。10月1日に出尽くした感じでしょうか。先日から技術ブログになりつつあります。今回も技術関連です。
Twitterの仕様変更により、ポイ探や買いログの自動更新時のツイートが失敗しているようでした。そういえば、なにか変更になるというニュースを見たなぁくらいにしか思っていませんでしたが、最近その仕様変更があったようです。
先日、ネットのニュースを見ていたら気になるタイトル記事がありました。「iTunes不正利用7月以降4000件」とあり、内容を見ると「買ってもいないアプリが勝手に買われていた。」等、自分の知らないところでアプリを勝手に購入されてしまったというケースです。このiTunesの不正利用に関しては、1年ほど前から報告されており、2011年7月以降だけでも4,000件とありますので、どんどん増えてきている印象です。
物販の場合は、購入した商品を送る先を指定しなければ商品を詐取することは出来ませんが、デジタルデータの場合は、住所を指定しなくても良いためアカウントを盗まれるとどうにもなりません。
今年、買いログの購入履歴を登録できるサイトにYahoo!ショッピング、iTunes Store、トイザらス・ベビーザらス オンラインストア、e!マツモトキヨシを追加しました。残念ながらヤフーショッピングに関してはセキュリティの強化のため、2011/08/26で停止しました。
購入履歴の取得は、スクレイピング(Scraping)を利用しています。ブラウザと同じ動作をするプログラムを作成し、HTMLソースコードを解析して、何らかの処理を行います。先日リリースした短縮URLチェッカーもソースコードを取得し、リダイレクト先やタイトルなどを取得しているという点では買いログと同じようなプログラムです。
ブラウザで動作するサイトであれば、URLを見たり、ソースコードを右クリックで見たりすることができますが、iTunes StoreだけはiTunes自体にブラウザが搭載され、右クリックができなかったり、アクセスしているURLが確認できなかったりと、通常のサイトとは違ったため、購入履歴の取得方法に約1年ほど悩みました。
第1回で書いた方法の場合(参考:Facebookのアカウントを利用してユーザ登録、ログインページを作成する(OAuth認証)(第1回))、ユーザの名前は英語名しか取得できません。scopeを変更することで日本語名を取得できるものだと思っていましたが、色々試してみても取得できませんでした。そこで見つけたのがFQL(Facebook Query Language)です。データベースを扱うSQL(Structured Query Language)のFacebook版です。
認証プログラムのことを書いていますので、SQLはご存知だと思いますのでFQLはすぐに理解できると思います。ワイルドカードが使えなかったり、幾つか制限はあるようですが、テーブル構成なども一覧でありますので難しくありません。
FQLのページにユーザ名を取得する例が書かれています。
SELECT name FROM user WHERE uid = me()
日本でFacebookも普及し始めたような気がしますので、そろそろポイ探や買いログにFacebookでユーザ登録、ログインできるようにしようかと考えました。OAuthで認証できると思いますので、「Facebook OAuth」で検索します。すぐに画像つきのページがヒットしますので、それほど大変じゃないのかなと感じました。実際に作成するまでの流れを書いてみたいと思います。
1.Facebookでアプリを作成
1-1.Create an AppでFacebookのアプリを作成
Create an Appをクリックすると、下記の画面が表示されます。
注意点としてはサイトURLには公開するドメインを入力して下さい。サブドメインで運用する場合はサブドメインを入力します。認証ページのURLにredirect_uriという引数が出てきますが、そちらのドメインと登録したドメインが違うとエラーメッセージが表示されてしまいます。ここで間違った情報を登録しても修正可能ですので、検証環境で検証してからということでしたら、検証時のドメインを入力して下さい。