2012年5月3日木曜日

グーグルスクリプトエディタ

現象:
google script editorでプロジェクトを削除できないことがあります。
「削除」ボタンを押してもなにも反応ないままです、これはバグでしょうか。
対策:
削除したいプロジェクトのソースコードを全部削除して保存する、
そしてプロジェクトが削除できるようになるらしい。

2012年4月30日月曜日

javascriptで現在時刻をyyyymmddhhiissで表示

function getNow(){
  nowtime = new Date();
  yy = nowtime.getYear();
  mm = nowtime.getMonth() + 1;
  dd = nowtime.getDate();
  hh = nowtime.getHours();
  if(hh < 10){hh = "0" + hh;}
  ii = nowtime.getMinutes();
  if(ii < 10){ii = "0" + ii;}
  ss = nowtime.getSeconds();
  if(ss < 10){ss = "0" + ss;}
  if (yy < 2000) { yy += 1900; }
  if (mm < 10) { mm = "0" + mm; }
  if (dd < 10) { dd = "0" + dd; }
    return (yy + "/" + mm + "/" + dd + " " + hh + ":" + ii + ":" + ss);
}
document.write(getNow());
loading...

2012年4月22日日曜日

googleスプレットシートをデータベースとして利用したカウンター







0

Gmailから他のGoogle Appsアカウントを追加

① まずは追加したいアカウントの「設定」→「メール転送と POP/IMAP」→「POP ダウンロード」からPOPを有効にする
② 追加先のGmailアカウントの「設定」→「アカウントとインポート」→「自分の POP3 メール アカウントを追加」
③ メールアドレス入力して、最後はPOPの設定、そして保存。

andoridで使っているメールクライアントk9mailは、なぜかpop方式がうまくいかないみたい、imapを使うしかありません(for businessと無料版は一緒みたい):
POP受信設定
POP サーバー: pop.gmail.com
セキュリティの種類: SSL(常に使用)
アカウント:yourname@yourdomain.com
パスワード:*********
認証タイプ:PLAIN
ポート:995

IMAP受信設定
IMAP サーバー: imap.gmail.com
セキュリティの種類: SSL(常に使用)
アカウント:yourname@yourdomain.com
パスワード:*********
認証タイプ:PLAIN
ポート: 993

SMTP送信設定
SMTP サーバー: smtp.gmail.com
セキュリティの種類: SSL(常に使用)
認証必要
アカウント:yourname@yourdomain.com
パスワード:*********
セキュリティ設定:AUTOMATIC
ポート: 465

ちなみに、k9mailのアカウント削除は「拡張機能」のなかにあった、探すのが時間かかった…
以上。

有料なgoogle apps for businessから無料なgoogle appsにダウングレード

間違ってgoogle apps for businessを申し込んでしまったら、使用期30日以内、利用者アカウントが10人未満なら、簡単に無料版に切り替えるらしい。
「ドメイン設定」→「登録と請求」で上記条件を満たしていれば、「Google Apps for Business をキャンセル」というリンクが表示されます。googleっていいやつだね orz


2012年4月21日土曜日

フォームからPOSTし、googleスプレットシートを更新するサンプル

ここを参考した、ありがとう御座いました。
つまり、googleスプレットシートをデータベースのように利用する。

① まず、googleドキュメントでスプレットシートを新規作成、シート名を"DATA"に変更する
② ツール → Script Editorを開け、このサイトからスクリプトをコピペする
③ スクリプトのfunction名「doGet」を「doPost」に変更して、保存、プロジェクト名は任意
④ 関数選択で「setUp」を選択し、実行、ポップアップした「Authorization required」にAuthorizeし、完了メッセージのページが表示される
⑤ もう一回「setUp」を実行、今回は何も表示しない
⑥ 「公開」→「サービスとして公開」、ポップアップ窓で、「Allow anyone to invoke this service」、「Allow anonymous access」、「Enable Service」をチェック、URLをコピー(重要)、最後「保存」
⑦ スプレットシートに戻って、A,B,C列の一行目に「name」、「age」、「sex」を入力
⑧ そしてHTMLを作る、UTF8で編集してね
<html>
<head>
<title>GoogleスプレットシートAPIテスト</title>
<script type="text/javascript">
<!--
function validateForm(){
  if(document.getElementById("name_input").value==""){
    alert("なんか書いてくださいよ!");
    return false;
  }else{
    document.getElementById("formID").submit();
    document.getElementById("thankyou").style.display="";
    document.getElementById("thankyou").innerHTML="登録ありがとう御座いました!";
    document.getElementById("formID").style.display="none";
  }
}
-->
</script>
</head>
<body>
<div style="display:none;" id="thankyou"></div>
<iframe src="#" id="fake-target" name="fake-target" style="width:0px; height:0px; border:0px;">
</iframe>
<form id="formID" action="https://docs.google.com/macros/exec?service=AKfycbzzoShgn4aUhFE4HLhUk2c41OCsMX8GOBru-nep" method="post" target="fake-target">
名前:<input type="text" name="name" id="name_input"/>
年齢:
<select name="age" id="age_input">
<option value="10">10歳</option>
<option value="20">20歳</option>
<option value="30">30歳</option>
<option value="40">40歳</option>
<option value="50">50歳</option>
</select>
性別:
<input type="radio" name="sex" id="sex_m" value="male" />男
<input type="radio" name="sex" id="sex_f" value="female" />女
<button onClick="javascript:validateForm();">送信</button>
</form>
</body>
</html>
⑨ ここのinputエレメントのname属性はそれそれスプレットシートに対応していますよ

スプレットシートのURL、登録後、確認してみてください。
https://docs.google.com/spreadsheet/ccc?key=0Akp-AdfTe-rCdE4weUFsMU1BUWlKMkNLLXBDQ2hiSGc

デモ、実際やってみてください!
名前:
年齢:
性別:

2012年4月17日火曜日

Google Docs スプレットシートAPIテスト

<html>
<head>
<title>GoogleスプレットシートAPIテスト</title>
</head>
<body>
<div id="data"></div>
<script type="text/javascript">
<!--
 function drawTable(json)
{
  var table = document.createElement('table');
  table.setAttribute('id', 'output');
  var tbody = document.createElement('tbody');
  
  var tr;
  for (var i=0; i < json.feed.entry.length; i++) {

    var entry = json.feed.entry[i];
    if (entry.gs$cell.col == '1') {
      if (tr != null) {
        tbody.appendChild(tr);
      }

      tr = document.createElement('tr');
    }
    
    var td = document.createElement('td');
    td.appendChild(document.createTextNode(entry.content.$t));
    tr.appendChild(td);
  }
  tbody.appendChild(tr);
  table.appendChild(tbody);
  document.getElementById('data').appendChild(table);
}
-->
</script>
<script type="text/javascript" src="https://spreadsheets.google.com/feeds/cells/0Akp-AdfTe-rCdDZEN2ZIWFMyMWhCV2dsRlkxb1N6bGc/od6/public/values?alt=json-in-script&callback=drawTable"></script>

</body>
基本ここのパクリが、時間あったらもうちょっと遊んでみる
Google Docsの公開URLは
https://docs.google.com/spreadsheet/ccc?key=0Akp-AdfTe-rCdDZEN2ZIWFMyMWhCV2dsRlkxb1N6bGc
一般公開しているので、変なこと書き込まないでいただきたいm(_ _)m

結果はこれ:2011年世界GDP順位だそうです




Google Spreadsheets API