2011-03-30

3arrows アップデート! Google Apps アカウントでログインできるようになりました。

3月28日(月)、企業やチーム向けのプライベートマイクロブログ、3arrows をアップデートしました。アップデートの主な内容は次の通りです。

Google Apps アカウントでログインできるようになりました!

コントロールパネルの 「ユーザーの管理」 画面で、「Google Apps アカウントでログインする」 のチェックボックスにチェックを入れると、以後、3arrows に Google Apps アカウントでログインできるようになります。

なお、Google Apps for Business をご利用の方は、Google Apps の OpenID の設定を有効にする必要があります。


「ログイン」 画面では Google Apps アカウントのドメインを入力してください。


今回の Google Apps アカウントへの対応で、3arrows は個人間のコラボレーション、企業内のコラボレーション、企業間のコラボレーションを支援できるようになりました。

3arrows では、異なるドメインのメールアドレスのユーザー、異なるドメインの Google Apps アカウントのユーザーを、区別せずメンバーとして招待することができます。


全てのアプリケーションの更新をお願いします!

管理者の方は、コントロールパネルのアプリケーションタブから、全てのアプリケーションを更新してください。「更新する」 リンクをクリックすると、アプリケーションを更新できます。「最新」 と表示されれば更新の完了です。


3arrows では、引き続き α テストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を始めることができます。企業や個人等、利用条件に制限はありませんので、この機会にぜひお試しください。

2011-03-21

Google Apps Script に続けて Windows Script Host (WSH) で 2-Legged OAuth をやってみました

こんにちは。なかじまん @ YOKOHAMA です。
東北関東大震災で被災された皆さまには心よりお見舞い申し上げます。



Google Apps Script の UrlFetch Services は 2Legged OAuth に対応してないっぽいので自前でやってみた に続いて、Windows Script Host (WSH) を使って Windows のコマンドラインから 2-Legged OAuth をやってみました。

WSH の場合、いろいろな実装方法を選択できそうなのですが、前述の Google Apps Script の JavaScript をそのまま動かす方法を選択しています。

なので、ソースコードはほとんど同じで、UrlFetch Services ではなく XMLHttpRequest を同期で使っているくらいの違いです。
<job>
<script language="JavaScript" src="sha1.js"></script>
<script language="JavaScript" src="oauth.js"></script>
<script language="JavaScript" src="json2.js"></script>
<script language="JavaScript">

  var endpoint = 'http://nakajiman.3arrows.jp/api/rpc/a';
  var consumerKey = '{Consumer Key}';
  var consumerSecret = '{consumer Secret}';
  var requestor_id = 'nakajiman(at)lrlab.to';

  var message = { method: 'POST', action: endpoint, parameters: {} };

  OAuth.setParameter(message, 'oauth_consumer_key', consumerKey);
  OAuth.setParameter(message, 'oauth_version', '1.0');
  OAuth.setParameter(message, 'oauth_timestamp', OAuth.timestamp());
  OAuth.setParameter(message, 'oauth_nonce', OAuth.nonce(6));
  OAuth.setParameter(message, 'xoauth_requestor_id', requestor_id);

  OAuth.SignatureMethod.sign(message, { consumerSecret: consumerSecret });

  var url = OAuth.addToURL(endpoint, message.parameters);
  var data = JSON.stringify({
      jsonrpc: '2.0',
      method: 'activities.create',
      params: { userId: '@viewer', group: '@self', activity: { title: 'Say hello!' } },
      id: 1
  });
  
  var xhr = WScript.CreateObject('MSXML2.XMLHTTP');
  xhr.open(message.method, url, false);
  xhr.setRequestHeader('Content-Type', 'application/json');
  xhr.send(data);
  
  if (xhr.status != 200)
    WScript.Echo(xhr.status + ' ' + xhr.statusText);
  else {
    var res = JSON.parse(xhr.responseText);
    WScript.Echo(res.result);
  }

</script>
</job>
ただいま、 企業やチーム向けのプライベートマイクロブログ 3arrows では、お客様のシステムやサービスとの連携を目的とした「シングルサインオン」と「2-Legged OAuth ベースの API」に取り組んでいます。

2-Legged OAuth ベースの API 公開により、システムやサービスの統合に加えて、Google Apps Script や Windows Script Host から 3arrows を操作して、ユーリティティの用途としても活用できるようになります。

2011-03-07

3arrows アップデート! 投稿内容を引用して返信できるようになりました! Gmail や Trac のような明瞭な引用です!

3月2日(水)、企業やチーム向けのプライベートマイクロブログ、3arrows をアップデートしました。アップデートの主な内容は次の通りです。

ステータスの引用機能の追加

マイクロブログの各ステータスを引用できるようになりました。


Twitter の以前の RT 機能と類似の機能となりますが、引用したステータスがそれと分かるようにスタイリングされ、また、3arrows は Twitter と比較して文字数の制限が緩いため、ステータスを途中で切ることなく引用することができます。

ステータス上でのアプリケーションのアイコンと名前の表示

日報等、各アプリケーションからマイクロブログに通知されたステータスには、それと分かるようにアプリケーションのアイコンと名前を表示するようになりました。


これにより、どのアプリケーションからの通知なのかが一目で分かるようになります。

全てのアプリケーションの更新をお願いします!

管理者の方は、コントロールパネルのアプリケーションタブから、全てのアプリケーションを更新してください。「更新する」 リンクをクリックすると、アプリケーションを更新できます。「最新」 と表示されれば更新の完了です。


3arrows では、引き続き α テストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を始めることができます。企業や個人等、利用条件に制限はありませんので、この機会にぜひお試しください。

Facebook のプロフィール写真をウェブカメラを経由でアップロードしてみた。ウェブカメラから multipart/form-data で静止画をアップロードできるライブラリを探しています。

こんにちは。Nobuhiro Nakajima です。

Facebook のプロフィール写真は、ウェブカメラを経由してウェブブラウザからアップロードできるらしいので試してみました。

手持ちのウェブカメラは マイクロソフト ウェブカメラ LifeCam VX-800 JSD-00006 です。↓これ。今なら 1,000 円くらいで入手できます。

マイクロソフト ウェブカメラ LifeCam VX-800 JSD-00006

プロフィール写真の設定ページから写真を撮るボタンをクリックすると、ポップアップが開きます。許可をクリックすると、ウェブカメラの映像が移り出すので、カメラボタンをクリックして、写真を撮ります。



すると、次のとおり、ウェブカメラで撮影した静止画がプロフィール写真として掲載されます。



ウェブカメラからの写真の撮影は Flash で実現されています。Flash 内で、ウェブカメラのストリームを扱い撮影のタイミングで静止画にして、サーバにアップロードするという仕組みのようです。

同じことをやってみたくて、ライブラリなどを探していると、いくつか発見できました。例えば、これとか。

jQuery webcam plugin - Website and Application Intelligence
This plugin provides three different modes to access a webcam through a small API directly with JavaScript - or more precisely jQuery.
ただ、今まで見つけたライブラリは、静止画のデータを HTTP POST の raw データとしてアップロードするものでした。これだと AppEngine の Blob Storage に直接アップロードできないのです。

ということで multipart/form-data でウェブカメラから静止画をアップロードできるライブラリを探しています。もしも、ご存じでしたらぜひ教えてください。

2011-03-03

3arrows アップデート! 無料プラン、独自ドメイン/専用環境プラン、OEM プランを追加しました。

3 月 1 日 (火)、企業やチーム向けのプライベートマイクロブログ、3arrows料金表を改定しました。改定の主な内容は次の通りです。

無料プランの追加

3arrows を無料で利用できるプランを追加しました。今後、ユーザー数が 5 人以内の場合、3arrows は無料で利用できます。

独自ドメイン/専用環境プランの追加

3arrows を独自ドメイン、専用環境で利用できるプランを追加しました。セキュリティポリシー上、共用環境での利用が難しかったお客様でも、今後は独自ドメイン、専用環境で 3arrows を利用できます。(有料になります。)

OEM プランの追加

3arrows を OEM として、お客様のブランドで提供したり、お客様のサービスに組み込んで提供できるプランを追加しました。3arrows は柔軟で堅牢なアーキテクチャーの元で実装されているため、デザイン、機能ともにフルカスタマイズした上で提供することが可能です。

3arrows では、引き続き α テストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を始めることができます。企業や個人等、利用条件に制限はありませんので、この機会にぜひお試しください。

2011-03-02

Google Apps Script の UrlFetch Services は 2Legged OAuth に対応してないっぽいので自前でやってみた

こんにちは。なかじまんです。

Google Apps Script の UrlFetch Services は 2Legged OAuth に対応してないっぽいので自前でやってみた。ちなみに 3Legged OAuth は標準でできるみたいです。

はじめに JavaScript の OAuth ライブラリ の内sha1.js と oauth.jp oauth.js を貼り付けます。そして、次のようにリクエストを署名して、UrlFetch Services でエンドポイントを叩きます。

以下の例では、Google Friend Connect の People API を呼び出して、Viewer (xoauth_requestor_id) のプロフィールを取得して、ニックネームを表示しています。
function myFunction() {

  var action = 'http://www.google.com/friendconnect/api/people/@me/@self';
  var accessor = { consumerSecret: '{consumerSecret}' };
  var message = { method: 'GET', action: action, parameters: {}, };

  OAuth.setParameter(message, 'oauth_consumer_key', '{oauth_consumer_key}');
  OAuth.setParameter(message, 'oauth_version', '1.0');
  OAuth.setParameter(message, 'oauth_timestamp', OAuth.timestamp());
  OAuth.setParameter(message, 'oauth_nonce', OAuth.nonce(6));
  OAuth.setParameter(message, 'xoauth_requestor_id', '18200614986198926446');

  OAuth.SignatureMethod.sign(message, accessor);

  var url = OAuth.addToURL(action, message.parameters);

  var response = UrlFetchApp.fetch(url, {method: message.method });
  if (response.getResponseCode() == 200) {
    var res = JSON.parse(response.getContentText());
    Browser.msgBox(res.entry.displayName);
  }
}
今回は Query String で試しましたが Authorization Header でも大丈夫なはず。

ということで Google Apps Script から 2Legged OAuth できちゃいました。

3arrows アップデート! お気に入り機能とダイジェストメール機能を追加しました。

2 月 25 日 (金)、企業やチーム向けのプライベートマイクロブログ、3arrows をアップデートしました。アップデートの主な内容は次の通りです。

お気に入り機能の追加

マイクロブログの各ステータスをお気に入りに追加できるようになりました。

各ステータスの返信、削除と並ぶ 「お気に入り」 メニューをクリックすると、そのステータスをお気に入りに追加できます。また、自分以外のユーザーがステータスをお気に入りに追加した場合、ステータスの下部にお気に入りの合計人数を表示するようになりました。


なお、追加したお気に入りは上部メニューの 「お気に入り」 から一覧できます。


ダイジェストメール機能の追加

1 日 1 回、マイクロブログ上のコミュニケーションのダイジェストを、メールで配信するようになりました。今後、みなさまのご利用状況を踏まえ、オプション化等も検討していきます。


不具合の修正

マイクロブログの返信機能の不具合や Picasa Web Albums の https への対応等、いくつかの改修を実施しました。

全てのアプリケーションの更新をお願いします!

管理者の方は、コントロールパネルのアプリケーションタブから、全てのアプリケーションを更新してください。「更新する」 リンクをクリックすると、アプリケーションを更新できます。「最新」 と表示されれば更新の完了です。


3arrows では、引き続き α テストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を始めることができます。企業や個人等、利用条件に制限はありませんので、この機会にぜひお試しください。