2010年01月10日
「Google検索結果数サクサク比較ツール」をリリースしました。
|Google検索結果数 サクサク比較ツール - konisipmle
その名の通り、Google検索結果数をサクサク比較します。
Google Visualization APIとGoogle Ajax Search APIを利用。
暇だったので勢いで作った。
Google Visualization API - Google CodeはJavaScriptで動いていて画像不使用とは思えない美しいグラフを書きよる。
バグ
LivedoorAuth認証API使ってみた
PHP | |
PHPでPOSTリクエストするのは始めただったけどわりかしうまくいった。
サンプル
LivedoorAuthを使ってみる - konisipmle
ソースコード
<?php $app_key="<APIキー>"; $secret_key="<秘密鍵>"; $perms="id"; $now=time(); $api_sig1="app_key".$app_key."perms".$perms."t".$now."v1.0"; $api_sig1=hash_hmac("sha1",$api_sig1,$secret_key); $mode=false; if(strlen($_GET["sig"])>0){ $mode=true; } if($mode){ $userhash=$_GET["userhash"]; $token=$_GET["token"]; $t=$_GET["t"]; $sig=$_GET["sig"]; $api_sig2="app_key".$app_key."t".$t."token".$token."userhash".$userhash."v1.0"; $api_sig2=hash_hmac("sha1",$api_sig2,$secret_key); if($api_sig2!=$sig) $mode=false; $now2=time(); $api_sig3="app_key".$app_key."t".$now2."token".$token."v1.0"; $api_sig3=hash_hmac("sha1",$api_sig3,$secret_key); $url="http://auth.livedoor.com/rpc/auth"; $data=array( "app_key"=>$app_key, "t"=>$now2, "token"=>$token, "v"=>"1.0", "sig"=>$api_sig3 ); $options = array('http' => array( 'method' => 'POST', 'content' => http_build_query($data), )); $json=file_get_contents($url, false, stream_context_create($options)); $json=json_decode($json); if(strlen($json->user->livedoor_id)==0) $mode=false; } ?> <?php if(!$mode){ ?> <h2>Livedoorで認証する</h2> <a href="http://auth.livedoor.com/login/?app_key=<?=$app_key?>&perms=<?=$perms?>&t=<?=$now?>&v=1.0&sig=<?=$api_sig1?>"> <img src="150_red.gif" alt="Livedoorで認証する"> </a> <?php }else{ ?> <table class="sen"> <tr><th>Livedoor ID</th><td><?=$json->user->livedoor_id?></td></tr> <tr><th>userhash</th><td><?=$userhash?></td></tr> </table>
参考にしたもの
PHPではてな認証APIを使うサンプルコード
PHP | |
超簡単だった。
サンプル
はまった点
- 最初帰ってきたjsonをjavascriptで処理しようとしたけど、レスポンスが何故か空。
- 結局原因不明だったので諦めてfile_get_contentsで簡単に処理した。
- クロスドメイン制約かな?
コード
<?php $secret_key="<秘密鍵>"; $api_key="<apiキー>"; $api_sig1=$secret_key."api_key".$api_key; $api_sig1=md5($api_sig1); //返却後の処理 $mode=false; if(strlen($_GET["cert"])>0){ $mode=true; } if($mode){ $api_sig2=$secret_key."api_key".$api_key."cert".$_GET["cert"]; $api_sig2=md5($api_sig2); $url="http://auth.hatena.ne.jp/api/auth.json?api_key={$api_key}&cert={$_GET['cert']}&api_sig={$api_sig2}"; $json=file_get_contents($url); $json=json_decode($json); if(strlen($json->user->name)==0) $mode=false; } ?> <?php if(!$mode){ ?> <h2>はてなで認証する</h2> <a href="http://auth.hatena.ne.jp/auth?api_key=<?=$api_key?>&api_sig=<?=$api_sig1?>">はてなで認証する</a> <?php }else{ ?> <h2>認証成功</h2> <div style="border:1px solid #666;padding:5px;"> <div style="border:1px solid #666;padding:5px;"> はてなID:<b><?=$json->user->name?></b><br> <img src="<?=$json->user->image_url?>"> </div> <?php } ?>
コメントを書く