FC2ブログ

短縮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;

テーマ : プログラミング
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック