短縮URLの利用統計取得

短縮URLの利用統計取得
これは公式サイトの
Look up a short URL’s analytics
で確認可能

https://developers.google.com/url-shortener/v1/getting_started#url_analytics

curl ‘https://www.googleapis.com/urlshortener/v1/url?shortUrl=http://goo.gl/fbsS&projection=FULL’
というようにアクセスすることで
“shortUrlClicks”: “3227”,
というように、統計をみることができる
今回はGETでアクセス
ソース部分は
$url =’https://www.googleapis.com/urlshortener/v1/url?shortUrl=http://goo.gl/fbsS&projection=FULL’;
さらに apiKey を付けるので
$url =’https://www.googleapis.com/urlshortener/v1/url?shortUrl=’.$shortUrl.’&projection=FULL&key=’.$apikey;
というように、最後にベースURLに&をつけて
apiKey を追加
また、
http://goo.gl/fbsS
はサンプル部分なので、
これを変数にかえます
この部分は短縮URLなので
$shortUrlへ変更しています
あとは、この$url の中身を取得したいので
$res = file_get_contents($url);
とする
でも、返ってくる値はJSON形式なので
デコードするので
$res = json_decode(file_get_contents($url));
というように
json_decocde() をつかう
この状態で一時確認したいのなら
var_dump($res);
exit();
とすれば結果を見れる
確認できたら、この2行はコメントアウト
そして、クリックされた数は
$clicks = $res->analytics->allTime->shortUrlClicks;
で取得結果を
$clicks へ格納している
クリック数自体は
$res->analytics->allTime->shortUrlClicks;
にある
ここまでできたら表示する
いちおうエスケープしておくので
h() をつかっておく
echo h($clicks);
で表示できる
また、短縮URLに 
+ をつけると統計ページにとぶことができる
これは a要素を使うことでできる
<a href=”<?php echo h($shortUrl) . ‘+’; ?>” target=”_blank”>詳細</a>
というようにすれば
短縮URL+
というようになる
http://dotinstall.com/lessons/basic_google_url_api/10408
ではいろいろと解析結果がでていたけど
ローカル開発環境の場合だと
クリックが反映されないようです
facebook アプリのときにもローカル開発環境では
iframe がなくなったりしたので
公開開発環境で行ったほうがよいのかもしれません

エスケープ処理とクリックイベント

エスケープ処理とクリックイベント
http://dotinstall.com/lessons/basic_google_url_api/10406
を参考に、短縮URL表示の続き
今回はエスケープ処理から
h()関数はPHP のネイティブ関数htmlspecialchars()の短縮表記
PHP h() などで検索するとわかりやすいかも
function h($s){
return htmlspecialchars($s, ENT_QUOTES, “UTF-8”);
}
ENT_QUOTES を指定することで、シングルクオートも エスケープ出来る
これについては
ENT_QUOTES 意味
で検索するとでてくる
今回は
http://phpspot.org/blog/archives/2008/01/phphtmlspecialc.html
を参考にしました
これができたら
echo $longUrl;

エスケープ処理したいので
echo h($longUrl);
というように変更する
h() の中に変数を入れている
次に、よくあるクリックすると全部選択状態になって
URLがコピペできるような状態にする
これは
input タグの中で
onclick=”this.select();” とつければOK
なので、input のところが
<input type=”text” value=”<?php echo h($shortUrl); ?>”>
から
<input type=”text” value=”<?php echo h($shortUrl); ?>” onclick=”this.select();”>
というように、最後にonclick がついている
this.select();
で全部選択という意味になる

短縮URL表示

http://dotinstall.com/lessons/basic_google_url_api/10405

を参考に、短縮URLの表示
curl_close();
ではオプションで
curl_close($curl);
というようにしないとエラーとなる
なお、最近Ubuntu デスクトップでもできるように
設定をしてみました
ソースの記述には
Eclipse + PDT プラグインで行っています
サーバー機能を追加したので
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install php5-curl
でインストールしておきます
PHP がインストールされていないと
ソースが表示されるだけです
そして、続き
string(19) “http://goo.gl/B2vaF”
というように、返ってきた値が短縮URLになっている
これをHTMLへ表示する
[“longUrl”]=> string(33) “http://localhost/google/index.php” }
となっているのが
短縮前のURL
短縮URLは
$res の中の id に入っているので
これを変数へ格納する
$shortUrl = $res->id;
結果をHTMlで表示するには
echo を使う
$longUrl = ‘http://’ . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘REQUEST_URI’];
というように変換前のURLをだしたいのなら
Original <?php echo $longUrl; ?>
というようにして
短縮URLを表示したいのなら
ShortURL <?php echo $shortUrl; ?>
というようにする
また、出力は入力欄の中にすることも可能
<input type=”text” value=”<?php echo $longUrl; ?>”>
というようにすれば
入力欄に
変換前URLを表示することができる

URL短縮実践

URL短縮実践
http://dotinstall.com/lessons/basic_google_url_api/10404
を参考にURL短縮の実践
なお Eclipse のPDTプラグインをいれて
ソースを書くと、入力コードを減らせるのでおすすめ
オプションは
json形式でわたす必要がある
これは
json_encode() を使って json へ変換する
そして、変数へ格納している
$params = json_encode(array(‘longUrl’=>$longUrl));
次に、curl をつかう
curl はソースからPHPをインストールしていると
パラメータにつけていないと使えないことがあるので注意
XAMPP とか CentOS なら yum で
インストールしていると、有効化されている
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
これで curl にURLをわたす
curl_setopt($curl, CURLOPT_HTTPHEADER, array(‘Content-Type: application/json’));
これは
Content-Type: application/json
をわたす
この部分は、リファレンスのコピペになる
curl_setopt($curl, CURLOPT_POST, 1);
これで
POST形式になる
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
これで、JSON形式データをPOSTでわたす
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
これで
返ってきたデータを文字列で受けとる
そして
これらのレスポンスを受けとるのが
curl_exec()
データはJSON形式なので
json_decode() を使い、それを変数に格納する
ソースにすると
$res = json_recode(curl_exec($curl));
これであとは curl を閉じるので
curl_close();
とする
結果をみたいのなら
var_dump($res);
とすれば結果をみることができる

Google 短縮URLデモ作成

Google 短縮URLデモ作成
http://dotinstall.com/lessons/basic_google_url_api/10403
を参考に作成
まず、API key は変数へ格納
そして、今回短縮するのは
今アクセスしているURLとするので
今アクセスしているURLを取得するなら
$_SERVER[‘HTTP_HOST’]
$_SERVER[‘REQUEST_URI’]
でとってきて
.
で連結する
そして、変数に格納
.で連結するのはPHPでよく行われる
java script で + で連結と近いかんじ
ソースにすると
$longUrl =’http://’. $_SERVER[‘HTTP_HOST’]. $_SERVER[‘REQUEST_URI’];
となる
短縮方法は
公式サイトをみたほうがわかりやすい
今回は
https://developers.google.com/url-shortener/v1/getting_started#shorten

Shorten a long URL
を使っている
要約すると
POST で
https://www.googleapis.com/urlshortener/v1/url
にアクセスし
{“longUrl”: “http://www.google.com/”}
というようにオプションを与える
アクセス形式は
Content-Type: application/json
となっているので
json でアクセス
そしてアクセスURLを変数へ格納する
$url = ‘https://www.googleapis.com/urlshortener/v1/url?key=’ . $apiKey;

Google URL短縮API API key 取得

公式サイトは
https://developers.google.com/url-shortener/
これは、名前の通り長いURLを短縮表示するためのもの
また、短縮されたURLのクリック数の統計を得ることも可能
利用したユーザーごとの履歴の取得も可能
これを使うには
HTML
CSS
PHP
が必要
これをつかうには API key が必要なので
https://code.google.com/apis/console/
へアクセスして
API key を取得する
この時の手順は
http://dotinstall.com/lessons/basic_google_url_api/10402
の動画を参照するとわかりやすい
ただ、私の場合
違う画面がでてきました
原因はおそらく以前Google Maps API を使ったり
その他いろいろと使っていたためだと思われます
とりあえず、
I agree to these terms へチェックをいれ
Accept
これで
Google apis のログイン画面になっているので
Services をクリックして
一覧を表示
Ctrl + f で
ページ内検索できるようにして
URL
と入力すればすぐにでてくるので
URL Shortener API
をONにします
またしても規約に同意するか聞かれるので
I agree to these terms
にチェックをいれ Accept
これで Overview をクリックすれば
有効化されているのを確認できる
API key の確認をするには
API Access をクリックして
Simple API Access のところに
API key:
というところに書かれているので
これを使います