【发布时间】:2012-09-16 20:39:52
【问题描述】:
我有一个 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
【问题讨论】:
-
我看不到任何说明它为什么不工作的东西,你能在 lync 中启用调试日志(一般“选项卡”下的设置)并将输出放在这里
-
我将尝试将成功(手动)尝试的日志与同时尝试 C# 失败的日志进行比较。
-
嗯,那里有一些错误对我来说毫无意义,但看起来有点怀疑为什么消息没有发送,它说它无法匹配 SIP 数据或主机 (09 /26/2012|20:26:20.335 16E8:1488 错误 :: SIP_URL::InternalInitialize 解析 SIP URL 时未找到主机)我会先查看这个,因为这应该可以解决问题。