SQLの窓

2011年07月15日


Google のURL短縮 API の簡単な実装例

フリーフォントで簡単ロゴ作成に実装した内容です。

このサービスでは、設定パラメータを URL に保存するので相当 URL が長くなります。ですから、リンクの href に使うには少し不便なので、IFRAME で以下のページを埋め込みました。XMLHttpRequest で呼び出しても良かったのですが、本体の画面構成がいっぱいいっぱいだったので、埋め込みにしています。

IFRAME を開くと同時に、URL を転送して、IFRAME 内で変換してもらうようにしています。このほうが、URLの内容を再度確認できます。



JSON で内容が返って来るので、json_decode を使ったほうが簡単になるのですが、サンプルとして他の JSON の内容も JavaScript で直接全て使えるサンプルとしてまずテストしました。
<?
header( "Content-Type: text/html; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );

?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>URL短縮</title>
<style type="text/css">

* {
	font-size:14px
}

</style>
<script type="text/javascript">
function setData() {

	if ( document.getElementById("url").value == '' ) {
		alert("URLが指定されていません   ");
		return false;
	}

	return true;

}
</script>
</head>
<body>
<div style='padding:10px;'>
<input type="button" value="閉じる" style='float:right' onclick='parent.document.getElementById("ggurl").style.display="none"'>
<br>
<form
	id="frm"
	method="post"
	style='display:inline;'
	onsubmit='return setData();'
>
	<table>
	<tr>
	<td>URL</td>
	<td><textarea readonly id="url" name="url" style='width:390px;height:200px;'><?= $_POST['url'] ?></textarea></td>
	<tr>
	<td colspan=2>
	<input
		type="submit"
		value="URL短縮"
	/>
	</td>
	<tr>
	<td>短縮後</td>
	<td>
		<input
			readonly
			type="text"
			id="text"
			name="text"
			style='width:390px;'
			onclick='this.select();'
		>
	</td>
	<tr>
	</table>

</form>

<?
if ( strtoupper( $_SERVER['REQUEST_METHOD'] ) == 'POST' ) {

	$url = googleShorten( $_POST['url'] );
	$url = str_replace( "\n", "", $url );
	$url = str_replace( "'", "\\'", $url );

?>
<script type="text/javascript">
var shorten = eval("(" + '<?=$url?>' + ")" );
document.getElementById("text").value = shorten.id;
</script>
<? } ?>

</div>
</body>
</html>
<?
function googleShorten( $url ) {

	// *********************************************************
	// curl 処理
	// *********************************************************
	$curl = curl_init();
	// *********************************************************
	// https 用
	// *********************************************************
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);

	curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
	curl_setopt($curl, CURLOPT_HEADER, false);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
	$api_url = "https://www.googleapis.com/urlshortener/v1/url";
	$api_url .= "?key=APIキー";
	curl_setopt($curl, CURLOPT_URL, $api_url );
	curl_setopt($curl, CURLOPT_POST, 1);
	curl_setopt($curl, CURLOPT_POSTFIELDS, "{\"longUrl\": \"{$url}\"}" );

	$header = array();
	$header[] = 'Content-Type: application/json';
	curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
//	$handle = fopen("./header.txt", "w");
//	curl_setopt($curl, CURLOPT_WRITEHEADER, $handle);

	$result = curl_exec($curl);
	curl_close($curl);

	return( $result );

}
?>
PHP : Google のURL短縮APIを呼び出す関数
Google URL Shortener API


【Googleの最新記事】
posted by lightbox at 2011-07-15 14:21 | Google | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり