社長BLOG

日本のモバイル向けOpenSocial拡張が、本家に標準化される

OpenSocialはほとんどPC向けに作られており、日本のモバイル環境(いわゆるガラケー環境)には適していなかった。JavaScriptが使えない、URLの長さに制限がある。など。

これまで日本ではOpenSocialを独自拡張したものを事実上の標準とし使ってきたが、OpenSocial1.1ではこの拡張を正式な仕様として扱ってくれることになった。
これは主に、ミクシィの田中さんの働きかけのおかげだ。

OpenPNE3もこの「日本仕様OpenSocial」にこれまで独自のソースコードで対応していたが、今後は本家の標準仕様を利用することになるだろう。
Apache Shindigプロジェクトが、OpenSocialの標準実装ソフトウエアで、これをそのまま使えば済むようになる)

ソーシャルプラットフォームにとっては、共通化によってより多くのアプリを集めることができる。
アプリ開発者も標準化によって、多くのソーシャルプラットフォームを選べるのはメリットだ。

そしてわれわれOpenPNEプロジェクトにとっても、OpenSocialの実装がこれまでよりも楽になれば、ソフトウエアの進化を早めることができるので、とても嬉しい。

モバイル向けmixiアプリのOpenSocial拡張 「OpenSocial WAP Extension」が正式標準に:CodeZine.

OPVC13 IDCallで素早く呼び出し

13日目は、OpenPNEによるコミュニケーションのスピードアップに取り組みます。

OpenPNE上に会社を作るためには、業務として成り立つレベルまで、コミュニケーションのスピードを加速する必要があります。電話、対面での打ち合わせ、メッセンジャーなどのレベルを目標に、OpenPNEのスピードアップを目指します。

IDCallプラグインは、日記やコミュニティ、アクティビティなどのOpenPNEの基本機能をアシストするツールです。
書き込みの本文に @teijma などと入れると、相手にメールで通知されます。

@1つ(@tejima) でPCのメールに。@2つ(@@tejima)でPCと携帯に、@3つ(@@@tejima)で、電話呼び出しも行います。※電話呼び出しは現在実験中。

opIDCallPluginを導入することで利用可能です。

OPVC12 Googleカレンダーの予定を共有

12日目はGoogleカレンダーと連携し、メンバーの予定をOpenPNE上で共有します。

概要

GoogleAppsのカレンダーデータをOpenPNEのアクティビティ上に共有(アクティビティフィード)します。
スタッフが自分の行動を知らせなくても、組織内で緩やかにスケジュール情報が共有されます。

スクリーンショット

GoogleCalendarで予定を入力

予定をOpenPNEアクティビティで共有

インストール手順

本プラグインはOPVCで利用しているopAuthPOP3Pluginが導入されていることを前提としています。

https://github.com/tejima/opAFCalendarPlugin

からパッケージをダウンロードし、/plugins/ディレクトリに設置します。

設定

./symfony zuniv.us:AFCalendar をCRON設定します。(5〜10分間隔で回す)
CRONTABを以下のように設定します。※10分おきの設定

*/10 * * * * cd /var/www/sns/MY_OPENPNE_COM/ && ./symfony zuniv.us:AFCalendar

OPVC11 メンバー全員フレンドリンク

11日目は会社のメンバーを全員フレンド状態にするopAutoFriendPluginでタスクを実行します。

会社組織に導入するのに、世間のSNSと同じようにフレンドリンクを結ぶのは変な感じがします。
同僚は、ひとりひとり社交をするものではなく、会社のミッションを実現するために集まった仲間なのです。

ここは、手っ取り早く強制的に全員をフレンドリンク同士にしてしまいましょう。

今日はフレンドリンク構造を制御するために、”タスク”という概念を使います。
タスクは自動的にフレンドリンクを結ぶようにデータベースを操作するプログラムが含まれています。
このタスクをCRONなどを利用して定期的に実行することで、SNSにおいて常にフレンドリンクされた状態を維持します。

opAutoFriendPluginを導入してください。

続いてCRONTABに自動実行のコマンドを登録してください。書式は以下のとおりです。

■使い方
/etc/crontab などに以下のようにcronの設定を行ないます。
以下の書式では毎時0分に自動的にフレンドリンクを実行します。

0 * * * * cd /var/www/OPENPNE_DIR/ && /usr/bin/php symfony zuniv.us:AutoFriend

これで、メンバー全員が自動的にフレンドリンクされます。

OPVC10 GoogleAppsとOpenPNEのID連携

10日目は、9日目とは別のプロトコル(OpenID)でのID連携を紹介します。

すでに9日目のPOP3でのID連携が実現していれば、本日はスキップして11日目に進んでOKです。

GoogleAppsとは?

GoogleAppsはGoogleが提供しているビジネス用Webサービス。
電子メール、ドキュメント管理、カレンダーなどが利用出来る。10ユーザーまでなら無料で使うことができます。

GoogleAppsのOpenID

GoogleAppは標準でOpenIDの発行サービスを搭載している。仕様はなかなか難しいですが、要はGoogleAppsがOpenIDの発行元(プロバイダー)だと認識しておけばOKです。

GoogleApps専用OpenID認証プラグイン

GoogleAppがOpenIDのプロバイダー機能を提供しているのであれば、認証プラグインもGoogleが発行するOpenIDを受け取れるようにします。一般的なOpenIDプロトコルを使いますが、GoogleAppsに最適化したプラグインを作りましたので、これを利用してください。詳細はプラグインページのREADMEを参照。
https://github.com/tejima/opAuthGoogleAppsPlugin

OpenIDの弱点

標準仕様になったOpenIDですが、弱点が有ります。日本のフィーチャーフォン(いわゆるガラケー)に対応していません。よって9日目のPOP3認証のほうが、結果的に優れています。

OPVC09 認証プラグインでID連携する

9日目はOpenPNE3の認証プラグインを使って、アカウント管理システムとID連携を実現します。

OVPCが対象する企業や団体などの組織では、スタッフ全員に何らかのアカウントが発行されていることがほとんどです。一番多いのはメールアドレスという形だと思います。
会社組織では、世間のSNSのように参加する際に新しくアカウントを発行するのではなく、
すでにある会社のID(メールアドレス)を流用してログインできるようにしたいです。
スタッフにとっては新しくパスワードを覚える必要がないし、アカウント管理の負担も増えないので、運営サイドにもメリットがあるでしょう。

大規模な組織向けの認証基盤といえば、ActiveDirectoryやLDAPがスタンダードですが、基本はエンタープライズ向けの技術で一般には普及しているとは言えない状況です。OPVCに適した認証方法を選択します。

POP3(eメールアカウントによる認証)

なるべく多くの企業での認証を実現するためにOPVCではPOP3プロトコルに注目しました。インターネット上に広く公開されている組織向けの認証基盤として、POP3は間違いなく一番のシェアを持っているはずです。POP3を選択することで、メールアカウントを発行している、ほぼすべてのレンタルサーバ、企業イントラネット、Office365やGoogleAppsなどのクラウド環境で動作します。

opAuthPOP3Pluginのインストール

OpenPNE3にPOP3用の認証を追加するには、opAuthPOP3Pluginを利用します。
https://github.com/tejima/opAuthPOP3Plugin

こちらからなるべくバージョン番号の新しいパッケージをダウンロードして下さい。
インストールは/plugins/ディレクトリに展開すれば完了です。

opAuthPOP3Pluginの設定

※詳しいインストール方法はプラグインのREADMEを参照してください。

プラグインの管理画面から、POP3サーバの設定を行います。

管理画面=>プラグイン設定=>認証プラグイン設定=>opAuthPOP3Plugin

ここで、POP3サーバのホスト名とメールのドメイン名を指定します。
※図はGoogleAppsでの設定。

ログイン画面

設定が終わると以上のようなログイン画面が表示されます。

あとは、ここにIDとしてメールアドレスの@以前(tejima@tejimaya.comなら”tejima”)
パスワードとしてPOP3のパスワードを入力します。

これでログインすることができます。
一度もログインしたことが無いスタッフは、認証を通過した時点で自動的にOpenPNE内でメンバーが作成されます。

これで、OpenPNE3へメールアカウントのIDとパスワードでログインできるようになりました。
メールアドレスを持つ全スタッフがOPVCに認証、ログインできるようになりました。

OPVC06 プラグインの選択

6日目は、会社用にOpenPNEのプラグインを選択しています。

プラグインとは?

プラグインとは、OpenPNEを拡張する機能の単位のことです。日記や掲示板、あしあと、メッセージなどの基本機能もプラグインとして提供されていますので、利用用途に応じて取り外しすることができます。

OpenPNE3.6時点では3種類のプラグインに分けることができます。

アプリケーションプラグイン
日記やあしあとなど個々の機能のためのプラグインです。
管理画面=>アプリケーションプラグイン設定をひらいて確認します。

認証プラグイン
OpenID認証 メールアドレス認証 Twitter認証など、OpenPNEにログインするための手段を提供するプラグインです。
管理画面=>認証プラグイン設定をひらいて確認します。

スキンプラグイン

OpenPNEのデザインを変更するスキンのプラグインです。

管理画面=>スキンプラグイン設定をひらいて確認します。

今日時点でOPVCは、プラグインがほとんど入っていないミニマム版です。
ここから、会社に必要なプラグインを選んでいきます。

アプリケーションプラグインの選択(削除)

OpenPNE3.6は標準で複数のプラグインが導入されているため、まずは、社内で使わないプラグインを取り除いていきます。

プラグインを取り除くためには、取り除きたいプラグインのチェックボックスを解除し、「設定変更」を押します。

opCommunityTopicPlugin
opDiaryPlugin
opMessagePlugin
この三つのみを残して、その他はすべて取り除きます。

認証プラグインの選択

認証プラグインも、取捨選択をしていきます。
opAuthMailAddressPlugin
opAuthMobileUIDPlugin

この二つをのこし、opAuthOpenIDPluginは解除します。

スキンプラグインについては、のちほど設定しますので、いまはこのままでOKです。

プラグインの追加

プラグインはもちろん追加することもできます。
プラグインの追加方法は主に2種類あります。

symfonyコマンドによるインストール
OpenPNEをインストールする時に使ったsymfonyコマンドは、プラグインインストールの時にも使えます。

cd OPENPNE_DIR
./symfony opPlugin:install opXXXPlugin

以上のようなコマンドを実行することで、OpenPNEのプラグインサーバから自動的にプラグインを取得し、インストールを行います。基本的にはこちらの方法を使ってください。

手動設置によるインストール

プラグインを手動で OPENPNE_DIR/plugins に設置する方法です。こちらは手動でインストールする方法です。パッケージとしてリリースされていないプラグインを導入するときに、主に使います。

※プラグイン導入時の後処理
プラグインによっては、画像ファイルやCSS、JavaScriptなどの追加ファイルをWEB上に共有(publish-assets)する必要があります。symfonyコマンドを使って、WEBブラウザから閲覧可能な場所に共有します。

./symfony plugin:publish-assets

コマンドを実行してください。

OPVC05 会社向けのプロフィール項目の設定

5日目は会社組織に適したプロフィール項目を設定を行います。

本日までで、ひととおりのインストールは完了しています。今日からしばらくは、技術者から運営者にジョブチェンジして、OpenPNE上での組織運営について考えてみましょう。

私たちは「OpenPNEがあればオフィスはいらない」すなわち、会社組織のバーチャル化を目指しています。ネット上で会社そのものを運営していけるように、OpenPNEを組織に適した形にアレンジしていきましょう。

組織は誰が参加するべきなのか?組織の目的は何か?目的のためにOpenPNE上で何をすべきか?

この3つの要素は、OpenPNEを運営する上で常に考えておきましょう。

プロフィール項目の決定

今日はまずプロフィール項目の設定をしていきます。以下のようなことを考えながら設定していきましょう。

1:一般のSNSではあたりまえだけど、会社組織では共有すべきではない情報はあるか?

例えばmixiのプロフィール項目はこのようになっています。
写真、名前、ニックネーム、現住所、性別、誕生日、生まれた年、血液型、出身地、趣味、職業、所属、好きな◯◯

プロフィール写真
プロフィール写真はとても重要です。なんといってもオフィスに出社しないので、顔を合わせる機会はOpenPNEの上だけです。mixiのように、ペットやアイドルの写真を載せるのではなく、メンバー全員本人の写真をそのまま載せるようにしましょう。

名前
名前は当然共有します。名前はのちのち利用する機会も出てくると思います。
たとえば、OpenPNE上でメンバーの名刺を発注する場合。全メンバーの名前が掲載されているととても便利です。結婚して性が変わっても、改名しても、メンバーが自分で名前を変えてくれます。

ニックネーム
ニックネームについては、私は不必要だと思います。これは項目として設けるべきではなく、社員同士で勝手に呼べばいいだけ(これは他にも理由があるので後述します)。

現住所、出身地
現住所、出身地も項目にするほどではなく、「◯◯県出身コミュニティ」などを作って入ってもらえばいいでしょう。

誕生日や、生まれた年
誕生日や、生まれた年は、下手に表示されていると義理でプレゼントしなきゃなんて思われたりするかも知れません。手嶋屋では項目がありますが、ここは組織次第ということでいいでしょう。

血液型、趣味、職業、好きな◯◯
血液型、趣味、職業、好きな◯◯はいりません。

こうして残ったプロフィールは以下のようになります。
・プロフィール写真
・氏名
・性別(無くてもいいかも)
・所属

2:会社組織として、プロフィールとして共有すべきメンバーの基本情報はなんだろう?

続いて、会社組織を運営する上で、新たにプロフィール項目として追加すべき項目はなんでしょうか?

OPVCとしての私が必要だと思う項目と、その理由を列挙していきます。

メールアドレス
メールアドレスは基本中の基本項目です。通常のSNSでは、メールアドレスは公開されません。参加者が何千万人もいますから、公開されると大変なことになりますね。一方、OPVCに参加するのは会社のメンバーだけ。積極的に公開し、社員同士の連絡を取りやすくしてあげましょう。

携帯メールアドレス、携帯電話番号
同様に、携帯メールアドレスや携帯電話番号も公開すべきです。会社から支給された携帯電話なら必須、メンバーの持ち込みであっても、できるだけ公開したほうがいいと思います。緊急で連絡したくなることも有りますから。

Skypeアカウント
Skypeのアカウントも共有しておきましょう。バーチャル組織には必須のツールです。

スクリーンネーム
スクリーンネームとは、Twitterで@xxxxxと表現されるものです。SNS内で、メンバーを識別するキーとして機能します。通常はメールアドレスの@以前をそのまま使えばいいでしょう。

OpenPNE3の日記やアクティビティではまだ実装されていませんが、@xxxxxとして、メッセージの送信者や受信者を明確にすることができます。

また、スクリーンネームは、社内メッセンジャーのアカウントに使ったりする可能性もあります。(そのようにOPVCを拡張していく予定です。)

プロフィール項目の登録

メールアドレスや、携帯電話番号、スクリーンネームなどユニークなプロフィール項目として設定します。

OpenPNEの管理画面では、このように設定することで、他のメンバーと衝突しない値として設定することができます。

また、現状のOpenPNEではニックネームを削除することができません。ひとまず管理画面のSNS内名称変更で、書き換えて置きましょう。

すべての項目を管理画面で設定すると以下のようになります。

プロフィール項目の変更について

組織によって必要とする項目は異なるとは思いますが、OPVCではこれらの値が設定されているものとして、今後の機能開発を行っていきます。(よってOPVCを使う間は項目を減らさないでください、項目を増やすのはOKです)

明日は

明日は、会社組織で利用するガジェットの選択を行っていきます。OPVC版のOpenPNE3はプラグインがほとんど入っていないプレーンな状態です。会社組織に必要なプラグインとガジェットを一つ一つ選択していきましょう。

OPVC04 携帯メール投稿のセットアップ

4日目は携帯メール投稿のセットアップです。

OpenPNEはPCだけでなく携帯電話からもアクセスできるようにデザインされています。
※スマートフォンはまだだけれど、、、
オフィスから外出中の社員に電話メモを送ったり、外出先で、社内のスタッフに写真付きのメモを送ったりすることができます。
外出先とオフィス、たとえみんなが離れ離れになっていても、OpenPNE上にはいつでも集まることができます。OpenPNEがあれば、オフィスまで戻らなくても外出先から会社のメンバーと情報共有することができるのです。

今日はOpenPNEに携帯電話から写真をアップしたり、コミュニティや日記に投稿する機能のセットアップを行いましょう。

今日の設定は公開サーバを前提にしたものです。もし、会社のイントラ環境内にインストールする場合には、◯◯日◯◯◯◯◯◯◯◯◯◯を読んでください。

メールサーバ Postfixの設定

今日までに、OpenPNEはセットアップされていると思います。
メールサーバは、設定や管理が容易なPostfixを使います。すでにインストールされているsendmailは削除します。

sudo yum install postfix
sudo yum remove sendmail

インストールが終わったら、一度起動(再起動)してみましょう。

sudo /etc/init.d/postfix restart

これでメールサーバとして一応動作するようになりました。

OpenPNEのメールを処理できるように設定する。

続いてOpenPNEのメールを受信し、OpenPNEのタスクとして処理できるように設定します。

①:携帯から送信されたメールをメールサーバが受信します
②:メールサーバからデータをパイプしOpenPNE3のタスクに渡します
③:タスクがメールデータを処理し、日記やコミュニティの書き込みに反映します

まず、①の部分の設定を行います。ここまではOpenPNEとは関係なく、メールサーバの設定です。
メールサーバにはPostfixを使用します。

PostfixのVirtual設定を利用します。

OpenPNE3のインストールドキュメントにも記載されているとおり、

/etc/postfix/virtual

example.com DUMMYNAME
@example.com openpne_user

そしてpostmapコマンドを実行して、メールサーバのインデックスを更新します。

sudo postmap /etc/postfix/virtual

次に②の部分の設定を行います。Postfixまで届いたメールを、OpenPNE3のタスクとして流し込みます。/etc/aliases を以下のように設定します。

openpne_user: “| cd /path/to/openpne/ && php /path/to/openpne/symfony openpne:execute-mail-action

こちらもインデックスを更新する必要があります。newaliasコマンドを使います。

sudo newalias

この設定が終わったら、携帯からメールを送信してください。
携帯にエラーメールが帰ってきたり、メールサーバのエラーログなどを確認してエラーが無いことを確認してください。
③は自動的に行われます。

携帯メールでの投稿はOpenPNEのインストールでは一番難しい作業です。
これを簡単にするためにPOP3 IMAPを利用した、セットアップ方法も解説していきます。

明日は

明日は、プロフィール項目の変更(会社向けにアレンジ)に取り組みます。
会社として必要十分なプロフィール項目の選択について解説していきます。

OPVC03 OpenPNE3の高速化

3日目 APCでOpenPNE3の動作を高速化する

APCでOpenPNE3を高速化

100人以下でOpenPNEを使う場合は、2日目のインストールだけでもOpenPNE3は十分動作します。低スペックな環境でつかいたい、大人数で利用したい場合には、より快適に動作させるために、PHPの高速化エンジンを導入すべきでしょう。

PHPの高速化エンジンはZend Optimizer、eAccelerator、APCなどが有りますが、今回は導入が手軽で、PHP5での実績も豊富、そして無料で使える。APCを導入します。

pearコマンドでAPCをインストール

sudo yum install php-pear
sudo pear channel-update pear.php.net
sudo pear upgrade-all –ignore-errors
sudo pecl install APC

このような表示が出ればインストールはOKです。

有効にするためには、
/etc/php.ini に extension=apc.so を記述します。
※このサンプルでは最終行に記述しています。

[soap]
; Enables or disables WSDL caching feature.
soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
soap.wsdl_cache_dir=”/tmp”
; (time to live) Sets the number of second while cached file will be used
; instead of original one.
soap.wsdl_cache_ttl=86400

; Local Variables:
; tab-width: 4
; End:

extension=apc.so

ここでApacheを再起動します。

/etc/init.d/httpd restart

APCが正しく導入されているか、phpinfo()で動作確認しています。

web/test.php ファイルを作成する。

ブラウザからtest.phpにアクセス。 http://59.106.172.77/test.php

このように、APCが正しくインストールされていればphpinfo()の画面で、このように表示されます。

明日は?

4日目は、携帯メール投稿のセットアップに取り組んでいきます。

OpenPNE�~�蓈���񋟃T�[�r�X�̂��m�点

  • ��K�̓z�X�e�B���O
  • �Z�p�T�|�[�g
  • �J�X�^�}�C�Y
  • OpenPNE Manager
  • ���q���܃T�|�[�g

ページの先頭に戻る