Presentation is loading. Please wait.

Presentation is loading. Please wait.

平成19年11月8日 図書系職員のための アプリケーション開発講習会

Similar presentations


Presentation on theme: "平成19年11月8日 図書系職員のための アプリケーション開発講習会"— Presentation transcript:

1 平成19年11月8日 図書系職員のための アプリケーション開発講習会
図書館カレンダーで 使えそうな技術(改) 平成19年11月8日 図書系職員のための アプリケーション開発講習会

2 図書館カレンダーの選択肢 Googleカレンダーを使う フリーのSNSソフトウエアを改造する 最初から自作する

3 Googleカレンダーを使う(1) Googleカレンダーに職員が予定をいれ、それを利用者用に公開する。
HTML形式で公開する(URLは google.com 上になる) XML形式でイベント情報を出力させ、それを利用者用に加工する Googleカレンダーの「共有」機能を使うことができる。

4 Googleカレンダーを使う(2) Googleカレンダーに予定を入れる OUTLOOKからデータを移すことができる
Google Calendar API(Atom)を使い、プログラムから予定をセットできる

5 Googleカレンダーを使う(3) ~ Google Calendar API で予定を書き込むサンプル~
#!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use Encode; use constant GAUTH_URL => ' use constant GCAL_URL => ' my $ = my $passwd = ‘xxxxx'; my $entry = <<'ENTRY'; <entry xmlns=' xmlns:gd=' <category scheme=' term=' <title type='text'>test desu</title> <content type='text'>nanndaka test.</content> <author> <name>akira</name> < >maeda</ > </author> <gd:transparency value=' </gd:transparency> <gd:eventStatus value=' </gd:eventStatus> <gd:where valueString='Rolling Lawn Courts'></gd:where> <gd:when startTime=' T15:00:00.000Z' endTime=' T17:00:00.000Z'></gd:when> </entry> ENTRY Encode::_utf8_off($entry);} my $ua = LWP::UserAgent->new(); my $auth = $ua->post(GAUTH_URL, { => $ , Passwd => $passwd, source => 'test', service => 'cl' }); my($auth_token) = $auth->content =~ m/Auth=(.+)/; my $req = => GCAL_URL); $req->header('Authorization', 'GoogleLogin auth=' . $auth_token); $req->content_type('application/atom+xml'); $req->content_length(length $entry); $req->content($entry); my $res = $ua->request($req); print $res->status_line . "\n"; if ($res->is_redirect && $res->header('Location')) { $req->uri($res->header('Location')); print $ua->request($req)->status_line . "\n"; } 参照

6 フリーのSNSソフトウエアを改造する OpenPNEを (単にメジャーらしいので)調査 Mixiと似た機能を提供するソフトウエア
PHPライセンスで提供 PHP, MySQLにて動作 カレンダー機能あり Googleカレンダーのような共有機能はないが、次のとおり改造は可能らしい

7 最初から自作する 必要と思われる機能 ユーザ認証 (以下2つとも試したことはないです) 予定の管理 スケジュール表の表示
CGI::Session (Perlの場合) PEAR::Auth (PHPの場合) 予定の管理 DBソフト(MySQLかPostgressSQL) スケジュール表の表示 HTML いっそ、最初から認証機能やDBとの連携機能のある Webフレームワーク(Ruby on RailsやCatalystなど)を 使ったほうがわかりやすい??

8 Ruby on Rials っぽく MVCモデルで考える
M (Model) データベース部分のこと。 MySQLやPostgressSQLを使って実装。 V (View) インターフェイス部分のこと。 HTMLで実装。 C (Controll) ロジック部分。プログラムを組もう!

9 View から考える (1) ガジェット風のインターフェイス
赤字で表示された日付をクリックすると、 イベント内容を記した フキダシがでるとか。 11月 Webページに貼り付けて利用可。 (インラインフレームなど)

10 View から考える (2) 卓上カレンダー風のインターフェイス
イベントタイトルをクリックすると、 イベント内容を記した フキダシがでるとか。 1日(木) 2日(金) 運動会 月の予定を一画面で確認できる

11 View から考える (3) ToDoリスト風のインターフェイス
7日 8日 今日は楽しい mbc イベントタイトルをクリックすると、 イベント内容を記した フキダシがでるとか。 一覧性はもっとも高い。

12 Modelから考える イベント内容 組織ファイル 図書室ID イベントファイル 図書室ID イベントタイトル パスワード 1 多
ここに挙げたのは「たとえば」の例


Download ppt "平成19年11月8日 図書系職員のための アプリケーション開発講習会"

Similar presentations


Ads by Google