好友的 XML
Microsoft Outlook Social Connector (OSC) 提供程序 XML 架构中的 friends 元素允许 OSC 提供程序指定社交网络中与 Outlook 用户关联的人员列表的信息。 如果 OSC 提供程序支持缓存同步,则此人员列表将仅包含社交网络上 Outlook 用户的朋友。 如果 OSC 支持按需同步或混合同步,则此列表可能包含 Outlook 用户的好友和非好友。
列表中的每个人在 XML 架构中表示为一个 person 元素,该元素支持名字、姓氏和电子邮件地址等详细信息。 OSC 提供商使用 好友 和 人员 元素,无论他们希望 OSC 如何同步社交网络中的好友信息。 请注意,如果社交网络支持将好友缓存或混合同步到 Outlook 联系人文件夹,则 人员的 子元素类似于 Outlook 联系人的某些属性,这有助于将好友存储在特定于社交网络的 Outlook 联系人文件夹中。
示例场景
以下示例方案显示了 OSC 提供程序实现的 OSC 提供程序扩展性 API 调用,OSC 为获取友元信息而做出的调用。 信息以符合 OSC 提供程序 XML 架构的 XML 字符串表示。
有关友元 XML 的示例,请参阅 好友 XML 示例。 有关同步好友信息的详细信息,请参阅 同步好友和活动。
方案 1:获取好友列表
方案 1 - OSC 获取好友列表,以及每个好友的 ISocialPerson 对象和图片:
支持显示社交网络站点中的好友并允许 OSC 缓存好友信息的 OSC 提供程序指示通过使用 getFriends 和 cacheFriends 元素( 这些功能元素的 子元素)向 OSC 显示好友信息。
OSC 提供程序还实现 ISocialProvider::GetCapabilities、 ISocialSession::GetPerson、 ISocialPerson::GetFriendsAndColleagues 和 ISocialPerson::GetPicture 方法。
OSC 调用 ISocialProvider::GetCapabilities 以检查以下元素的值:getFriends 用于验证 OSC 提供程序是否支持显示社交网络中的好友,以及 cacheFriends 以验证提供程序是否支持缓存好友。
OSC 调用 ISocialSession::GetPerson 以获取 Outlook 用户的 ISocialPerson 对象。
OSC 调用 ISocialPerson::GetFriendsAndColleagues 以获取 在 personCollection 参数字符串中返回的 Outlook 用户的好友列表。 personCollection 字符串符合 XML 架构中 friends 元素的 XML 架构定义。
对于 personCollection XML 字符串中的每个友元,OSC 获取 userID 元素的值,以调用 ISocialSession::GetPerson 以获取该友元的 ISocialPerson 对象。
对于 personCollection XML 字符串中的每个好友,OSC 调用 ISocialPerson::GetPicture 以获取该好友的图片资源。
OSC 可以对 ISocialPerson 对象进行进一步调用,以获取活动和详细信息 (例如,该好友的电子邮件地址) 。
方案 2:同步好友
方案 2 - OSC 动态同步好友:
支持好友和非好友按需同步的 OSC 提供程序使用 getFriends 和 dynamicContactsLookup 元素向 OSC 指示。 OSC 提供程序还设置 hashFunction 元素。 这三个元素都是 功能的子元素。
OSC 提供程序还实现 ISocialSession2::GetPeopleDetails 方法。
OSC 调用 ISocialProvider::GetCapabilities 以检查 getFriends 和 dynamicContactsLookup 的值,以验证 OSC 提供程序是否支持好友以及好友和非好友的按需同步。 OSC 还记录了 OSC 提供程序支持的 hashFunction 的值。
对于人员窗格中显示的每个用户,OSC 会收集用户的电子邮件地址,并使用 hashFunction 中指定的哈希函数对其进行加密。 这将形成符合 hashedAddresses 元素的 XML 架构定义的 XML 字符串。
OSC 调用 ISocialSession2::GetPeopleDetails(提供此 XML 字符串作为 personAddresses 参数)来动态获取 personCollection 参数中人员的最新详细信息。 personCollection 参数字符串符合 XML 架构中 friends 元素的 XML 架构定义。
父元素和子元素
下面是 友元 架构中的两个顶级元素。
元素 | 说明 |
---|---|
朋友 |
表示 人员 元素列表的根元素。 ISocialPerson::GetFriendsAndColleagues、ISocialSession::FindPerson 和 ISocialSession2::GetPeopleDetails 返回符合 friends 元素的架构定义的 XML 字符串。 |
person |
表示人员元素列表中的一 个人 。 ISocialPerson::GetDetails 方法返回符合 person 元素的架构定义的 XML 字符串。 |
下表描述了 OSC 提供程序 XML 架构中 person 元素的每个子元素。
有关 OSC 提供程序 XML 架构的完整定义(包括哪些元素是必需的或可选),请参阅 Outlook Social Connector Provider XML 架构。
元素 | 说明 |
---|---|
address |
此人的实际街道地址。 |
周年 |
此人的活动的周年日期。 |
askmeabout |
相关人员感兴趣的主题或专业知识。 |
生日 |
此人的出生日期。 |
businessAddress |
此人工作场所的物理街道地址。 |
businessCity |
个人工作场所的城市。 |
businessCountryOrRegion |
该人员工作场所的国家或地区。 |
businessState |
该人员工作场所的州或省。 |
businessZip |
人员工作场所的邮政编码。 |
细胞 |
此人的移动电话号码。 |
城市 |
此人的实际地址的城市。 |
company |
与该人员关联的公司的名称。 |
countryOrRegion |
人员实际地址的国家或地区。 |
creationTime |
在社交网络上创建人员个人资料的时间。 |
emailAddress |
此人的主要电子邮件地址。 |
emailAddress2 |
人员的辅助电子邮件地址。 |
emailAddress3 |
此人的三级电子邮件地址。 |
expirationTime |
该用户的个人资料数据在社交网络上过期的时间。 |
fileAs |
在 Outlook 联系人文件中将人员作为联系人提交的字符串。 |
firstName |
该人员的名字或给定名称。 |
friendStatus |
此人与社交网络上已登录的用户的好友状态。 必须是以下值之一: friend、 nonfriend、 pending、 pendingin、 pendingout。 |
fullName |
人员的全名。 |
性别 |
人员的性别。 必须是以下值之一: male、 female、 unspecified。 |
homePhone |
此人的家庭电话号码。 |
index |
传递给 ISocialSession2::GetPeopleDetails 方法调用的 personAddresses 字符串参数中人员哈希地址的位置。 它还指示 GetPeopleDetails返回的personCollection 字符串中的 person XML。 |
行业 |
此人从事的行业。 |
interests |
此人的兴趣或爱好。 |
lastModificationTime |
上次在社交网络上修改该用户的个人资料的时间。 |
lastName |
此人的姓氏。 |
location |
人员的位置。 |
昵称 |
此人的短名称或发明名称。 |
otherAddress |
此人的另一个街道地址。 |
otherCity |
此人的替代地址的 City。 |
otherCountryOrRegion |
人员可选地址的国家或地区。 |
otherState |
此人的替代地址的州或省。 |
otherZip |
联系人可选地址的邮政编码。 |
电话 |
此人的主要联系人电话号码。 |
pictureUrl |
此人的个人资料图片的 URL。 |
关系 |
此人与登录用户的关系。 |
schools |
该人去或去的学校。 |
skills |
个人技能。 |
state |
人员实际地址的州或省。 |
title |
已将指定添加到人员姓名中。 |
userID |
用于标识社交网络上人员的 ID。 |
webProfilePage |
包含人员个人资料的网页地址。 |
网站 |
此人的网站。 |
workPhone |
此人的商务电话号码。 |
Zip |
人员实际地址的邮政编码。 |