フリーフォントで簡単ロゴ作成に実装した内容です。 このサービスでは、設定パラメータを 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の最新記事】
- Google 共有ドライブの容量の上限について
- Google Classroom は無料の G Suite for Education アカウントが必要
- 教室と一対一のフォルダより新しく登録されたフォルダの中にあるZoom動画ファイルを該当するClassroom の コース内の該当するトピックに登録する
- Google Apps Script : 動画を添付して Classroom の指定のトピックへ課題として投稿する
- Google Classroom のテーマ画像のサイズと既存画像をテーマ画像として使用してみた手順
- Google Chrome でスマホのソースコードをごく普通に表示して利用する
- Gmail に 実行可能なファイルの拡張子を持つファイルを格納した zip 書庫は送れません
- Gmail で添付できないファイルをエクスプローラで検索する為の文字列
- jQuery で既存 table より Firebase Database のデータを作成する
- jQuery + Bootstrap(css) + mmenu : Firebase Database 参照と更新サンプル( 新規登録テンプレートより )
- jQuery + Bootstrap(css) + mmenu : Firebase Database 新規登録テンプレート
- jQuery + Bootstrap(css) + mmenu : Firebase ログインテンプレート
- Google ドライブの WEBホスティングが無くなったので、Google の Firebase をとりあえず使う方法
- Google サイト内検索の FORM 要素による設置
- ブラウザの geolocation で Google MAP に現在地を表示。ライブラリでさらに詳細情報。API の geocoder で名称・住所から Google MAP を表示して、ライブラリで..
- Google+ に投稿するテキスト内の文字列を太字(ボールド)にしたりイタリックにしたりする方法
- Google の Plus API を使って Google+ 投稿データを jQuery UI のアコーディオン(accordion)で表示する
- Google の タスク API(ToDoリスト) を使ってタスクリストとタスクのタイトルを jQuery のプラグインでメニュー化する
- Google API の中でも単純な Task API を使って、アクセストークン取得のテンプレートを整備しました
- GitHub の google-api-php-client( PHP ) を使って、Gmail でメールを送る( 添付ファイル付き )


JSON で内容が返って来るので、



