LyncSDKを使ってみたいと思って1ヶ月ぐらい経ったことでしょう。
やってみよう。
LyncSDKは、MSが提供しているSDKの中ではかなりわかりやすい、面白いと感じました。
開発の概要はSlideShareにいい感じのがありました。
UIの部分はWPFのコンポーネントとして提供されているので、ペタペタ貼り付けるだけでそれなりに楽しく動きます。
今回は、IMの送信画面をWPFで作ったアプリから呼び出してみようかと思います。
プロジェクトの作成(VisualStudio2012)
SDKがVisualStudio2012にしか対応していません。VS2012を使用します。
ファイル > 新規作成 > プロジェクト
SDKをインストールしたのでLyncWPFApplicationとLyncSilverlightApplicationが増えていますね。
WPFで呼び出し画面作成
なんかいい感じにこんな感じで
(WindowsFormでも良かった気がする)
ボタンを押した時にLyncを呼ぶ実装
usingに追加
using Microsoft.Lync.Model; using Microsoft.Lync.Model.Extensibility;
呼び出しボタン押下イベント
var 宛先 = text_相手.Text; var 件名 = text_件名.Text; var 一言 = text_一言.Text; // 自動化?オブジェクト取得 var automation = LyncClient.GetAutomation(); // IMを送る相手を設定する。 // 複数人に送る場合にはその人数だけリストに追加 List<string> inviteeList = new List<string>(); inviteeList.Add(宛先); // IM送信時のオプション設定を構築 var modalitySettings = new Dictionary<AutomationModalitySettings, object>(); modalitySettings.Add(AutomationModalitySettings.FirstInstantMessage, 一言); modalitySettings.Add(AutomationModalitySettings.SendFirstInstantMessageImmediately, true); modalitySettings.Add(AutomationModalitySettings.Subject, 件名); // 呼び出し IAsyncResult ar = automation.BeginStartConversation( AutomationModalities.InstantMessage , inviteeList , modalitySettings , null , null); automation.EndStartConversation(ar);
実行
新しくウィンドが呼ばれました。
(∩´∀`)∩ワーイ
簡単に呼び出せます。
ただし、これはLyncクライアントがローカル環境で起動している必要があります。
上のコードではログイン状態を見ていないので、以下のように状態を見てIM送信の可否を判定する必要があります。
if (LyncClient.GetClient().State != ClientState.SignedIn) { //ログインしていないため送信出来ません return; }
想像より開発のハードルは低く感じましたが、開発環境を揃えるのが超難しいですね。
既に、Lyncを使っているなら簡単ですが・・・
未導入でちょっと試してみたい!ってのは不可能に近いので開発者が少ないのかしら・・・
あと、VS2012にしか対応していないのはかなりのネックですよ( ノ゚Д゚)