Hatena::Diary

konisimple log RSSフィード

このブログは、koniがkonisipmleの更新履歴と技術的メモ、思いつきなどを思いつくままに書き留めたものです。
koniの詳しいプロフィールはこちらです。

2010年01月10日

「Google検索結果数サクサク比較ツール」をリリースしました。

04:53 | 「Google検索結果数サクサク比較ツール」をリリースしました。 - konisimple log を含むブックマーク

Google検索結果数 サクサク比較ツール - konisipmle

その名の通り、Google検索結果数をサクサク比較します。

f:id:konisimple:20100111045301p:image

アニメ番組を比較した様子*1

Google Visualization APIGoogle Ajax Search APIを利用。

暇だったので勢いで作った。

Google Visualization API - Google CodeJavaScriptで動いていて画像不使用とは思えない美しいグラフを書きよる。

バグ

  • 「画像形式のグラフにする」といのうは、Google Chart APIを使ってグラフを書くタイプなんですが、GoogleAPIバグなのかちゃんと表示されません><*2
    • それでbetaと書いておきました。まぁ大体あってるw
      • 棒グラフの棒の長さの比はあってるので、下の数字を消してbetaも消しました

LivedoorAuth認証API使ってみた

| 17:28 | LivedoorAuth認証API使ってみた - konisimple log を含むブックマーク

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からPOSTリクエストを送信する方法【PHP】 - Programming Magic

PHPではてな認証APIを使うサンプルコード

| 15:35 | PHPではてな認証APIを使うサンプルコード - konisimple log を含むブックマーク

暇だったので、PHPはてな認証API使ってみた。

超簡単だった。

サンプル

はてな認証APIを使ってみる - konisipmle

はまった点

  • 最初帰ってきたjsonjavascriptで処理しようとしたけど、レスポンスが何故か空。
    • 結局原因不明だったので諦めて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	}	?>

*1:他にいい例が思いつかなかったorz

*2サンプルコードの時点でおかしなグラフだからたぶんバグだと思う