Lyncユーザーの電子メールアドレスを持っていて、彼にインスタントメッセージを送信したいと思います。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Lync.Model;
using Microsoft.Lync.Model.Conversation;
namespace Build_Server_Lync_Notifier
{
class Program
{
static void Main(string[] args)
{
if (args.Length != 2)
{
Console.WriteLine("Usage: bsln.exe <uri> <message>");
return;
}
LyncClient client = Microsoft.Lync.Model.LyncClient.GetClient();
Contact contact = client.ContactManager.GetContactByUri(args[0]);
Conversation conversation = client.ConversationManager.AddConversation();
conversation.AddParticipant(contact);
Dictionary<InstantMessageContentType, String> messages = new Dictionary<InstantMessageContentType, String>();
messages.Add(InstantMessageContentType.PlainText, args[1]);
InstantMessageModality m = (InstantMessageModality) conversation.Modalities[ModalityTypes.InstantMessage];
m.BeginSendMessage(messages, null, messages);
//Console.Read();
}
}
}
スクリーンショット
大きなスクリーンショットへのリンク:http://i.imgur.com/LMHEF.png
このスクリーンショットでわかるように、連絡先を手動で検索してインスタントメッセージを手動で送信することはできますが、私のプログラムは実際には機能していないようです。
ContactManager.BeginSearch()
の代わりに使用してみContactManager.GetContactByUri()
ましたが、同じ結果が得られました(スクリーンショットで確認できます):http://pastie.org/private/o9joyzvux4mkhzsjw1pioa