好友的 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 对象以及每个好友的图片:

  1. 支持显示社交网络网站中的好友并允许 OSC 缓存好友信息的 OSC 提供程序使用 getFriendscacheFriends 元素向 OSC 指明这一点,这两个元素是 capabilities 元素的子元素。

  2. OSC 提供程序还实现 ISocialProvider::GetCapabilitiesISocialSession::GetPersonISocialPerson::GetFriendsAndColleaguesISocialPerson::GetPicture 方法。

  3. OSC 调用 ISocialProvider::GetCapabilities 来检查以下元素的值: getFriends 验证 OSC 提供程序是否支持显示社交网络中的好友, cacheFriends 验证提供程序是否支持缓存好友。

  4. OSC 调用 ISocialSession::GetPerson 为用户获取 ISocialPerson Outlook对象。

  5. OSC 调用 ISocialPerson::GetFriendsAndColleagues,获取 personCollection 参数字符串中返回的 Outlook 用户的好友列表。 personCollection 字符串符合 XML 架构中 friends 元素的 XML 架构定义。

  6. 对于 personCollection XML 字符串中的每个好友,OSC 获取 userID 元素的值以调用 ISocialSession::GetPerson 以获取该好友的 ISocialPerson 对象。

  7. 对于 personCollection XML 字符串 中的每个好友,OSC 调用 ISocialPerson::GetPicture 获取该好友的图片资源。

    OSC 可以进一步调用 ISocialPerson 对象,以获取活动和详细信息 (例如,该好友) 的电子邮件地址。

方案 2:同步好友

方案 2 - OSC 动态同步好友:

  1. 支持好友和非好友的按需同步的 OSC 提供程序使用 getFriendsdynamicContactsLookup 元素将指示到 OSC。 OSC 提供程序还会设置 hashFunction 元素。 这三个元素都是功能的 子元素

  2. OSC 提供程序还实现 ISocialSession2::GetPeopleDetails 方法。

  3. OSC 调用 ISocialProvider::GetCapabilities 以检查 getFriendsdynamicContactsLookup 的值,以验证 OSC 提供程序是否支持好友和非好友的按需同步。 OSC 还记下 OSC 提供程序支持的 hashFunction 的值。

  4. 对于显示在人员窗格中的每个用户,OSC 会收集用户的电子邮件地址,然后使用 hashFunction 中指定的哈希函数对其进行加密。 这将形成一个 XML 字符串,该字符串符合 hashedAddresses 元素的 XML 架构定义。

  5. OSC 调用 ISocialSession2::GetPeopleDetails,以将哈希地址的此 XML 字符串作为 personAddresses 参数提供,以动态获取 personCollection 参数中人员的更新详细信息。 personsCollection 参数字符串符合 XML 架构中 friends 元素的 XML 架构定义。

父元素和子元素

以下是好友架构中的两个 顶级 元素。

元素 说明
好友
表示人员元素列表的 元素。 ISocialPerson::GetFriendsAndColleaguesISocialSession::FindPersonISocialSession2::GetPeopleDetails 返回符合 好友 元素的架构定义的 XML 字符串。
person
表示人员元素列表中的 个人。 ISocialPerson::GetDetails 方法返回一个 XML 字符串,该字符串符合 person 元素的架构定义。

下表介绍了 OSC 提供程序 XML 架构 中 person 元素的每个子元素。

有关 OSC 提供程序 XML 架构的完整定义,包括哪些元素是必需的或可选的,请参阅Outlook连接器提供程序 XML 架构

元素 说明
address
人员的物理街道地址。
周年
人员事件的周年日期。
askmeabout
人员感兴趣的主题或专长。
birthday
人员出生日期。
businessAddress
人员工作区的物理街道地址。
businessCity
用于个人工作场所的城市。
businessCountryOrRegion
人员工作场所的一个或多个国家/地区。
businessState
人员工作场所的省/市/县。
businessZip
人员工作区的邮政编码。
cell
人员的移动电话号码。
city
人员物理地址的城市。
company
与此人关联的公司的名称。
countryOrRegion
人员物理地址的"国家/地区"或"地区"。
creationTime
社交网络上人员个人资料的创建时间。
emailAddress
人员的主电子邮件地址。
emailAddress2
人员辅助电子邮件地址。
emailAddress3
人员的第三个电子邮件地址。
expirationTime
用户的个人资料数据在社交网络上的过期时间。
fileAs
要作为联系人存档在联系人文件中Outlook字符串。
firstName
人员的名字或名字。
friendStatus
此用户在社交网络上具有已登录用户的好友状态。 必须为以下值之一:friendnonfriend、pending、pendinginpendingout
fullName
人员的完整姓名。
gender
人员性别。 必须为以下值之一:男性**、男性****、未指定**。
homePhone
人员住宅电话号码。
index
人员哈希地址在 personAddresses 字符串参数中的位置,该参数传递给 对 ISocialSession2::GetPeopleDetails 方法的调用。 它还指示 人员在 GetPeopleDetails 返回 的 personCollection 字符串中的 XML。
industries
人员参与的行业。
interests
人员的兴趣或爱好。
lastModificationTime
上次在社交网络上修改用户个人资料的时间。
lastName
人员姓氏或姓氏。
location
人员的位置。
nickname
人员的姓名或姓名越短。
otherAddress
该人员的替代街道地址。
otherCity
人员备用地址的城市。
otherCountryOrRegion
用户备用地址的"国家/地区"。
otherState
人员备用地址的省/市/县。
otherZip
人员备用地址的邮政编码。
phone
人员的主要联系人电话号码。
pictureUrl
人员的个人资料图片的 URL。
关系
此人与登录用户的关系。
schools
人员前往或转到的学校。
skills
人员的个人技能。
state
人员物理地址的省/市/县。
title
添加到人员姓名的指定。
userID
用于标识社交网络上人员的 ID。
webProfilePage
包含人员个人资料的网页地址。
website
人员的网站。
workPhone
人员商务电话号码。
zip
人员物理地址的邮政编码。

另请参阅