Skip to main content

对 Plone 的基本 Facebook Connect 支持

项目描述

介绍

collective.simplesocial 公开了 Facebook API 的一些基本功能,供在 Plone 中使用。

这个 Plone 附加产品的目标是:

  • 提供作为自定义 Facebook API 集成基础所需的基本基础设施。(例如应用程序 ID 配置,包含所需的代码片段)

  • 公开 Facebook API 的精选高价值预打包组件,无需深入了解 API 的内部工作原理。

当前功能包括:

兼容性

collective.simplesocial 已经用 Plone 3.x 和 Plone 4.0 进行了测试。

它已通过 Firefox 3.5、Safari 4 以及 Internet Explorer 7 和 8 进行了测试。不再支持 Internet Explorer 6。

collective.simplesocial 与 sc.social.like 不兼容。

创建 Facebook 应用程序

在您可以使用collective.simplesocial 的功能之前,您需要创建一个Facebook 应用程序。为此,请按照下列步骤操作:

  1. 转到Facebook 开发者应用程序。如果出现提示,请允许它访问您的个人资料。

  2. 单击设置新应用程序按钮并填写表格。

  3. 记下显示的应用程序 ID

  4. 在 Facebook 应用程序的设置中,单击“连接”选项卡。在连接 URL字段中输入站点的URL。

  5. 返回您的 Plone 站点,并在 Facebook 设置控制面板中输入 Facebook 应用程序 ID。然后使用提供的按钮登录 Facebook 并连接您的 Facebook 应用程序。

喜欢按钮

Facebook Like 按钮允许访问者在他们的 Facebook 个人资料和您网站上的一段内容之间建立持久的联系。

先决条件

要将 Like 按钮添加到您的站点,请首先按照上面创建 Facebook 应用程序的说明进行操作。

添加赞按钮

  1. 转到站点设置。

  2. 单击 Facebook 设置。

  3. 如果您尚未登录 Facebook,请使用提供的按钮。

  4. 在 Like Button 选项卡上,确保选中“Display Like button on this site”。

  5. 选择您希望喜欢按钮默认显示的内容类型。

  6. 设置喜欢按钮的显示选项。

  7. 保存您的设置。

启用和禁用点赞按钮

除了选择将显示“赞”按钮的内容类型外,您还可以为特定内容打开或关闭“赞”按钮。为此,请浏览到内容项,然后从“操作”菜单中选择“显示赞按钮”或“隐藏赞按钮”。

自定义开放图元数据

为了了解被喜欢的内容,Facebook 从页面顶部的 Open Graph 标签中读取元数据。默认情况下,Simple Social 提供基于以下字段的元数据:

  • 内容项的标题

  • 内容项的 URL

  • 内容项的描述,如果它提供了一个

  • 内容项的预览图像(如果提供)或站点徽标

  • 站点名称

  • Facebook 应用程序 ID

除网站主页外的所有内容项均列为“文章”类型。该站点的主页被列为“网站”类型。

Open Graph 元数据可以通过注册一个为内容类型的接口提供collective.simplesocial.likebutton.interfaces.IOpenGraphProvider 的适配器,在每个内容类型的基础上进行定制。在不止一种内容类型提供相同接口的情况下,可以命名适配器以匹配所需的门户类型。例如,请参阅collective.simplesocial.likebutton.opengraph.DefaultOpenGraphProvider 中的默认实现。

Like Box Portlet

Facebook 提供了一个基本的Like Box小部件,可用于通过提示您网站的访问者喜欢页面并允许他们查看页面的活动流和粉丝来推广 Facebook 页面。collective.simplesocial 允许将 Like Box 作为 portlet 插入。

先决条件

要使用 Like Box portlet,您必须完成 创建 Facebook 应用程序部分中的步骤。您还需要一个 Facebook 页面。记下页面的 URL,并在创建 portlet 时输入。

添加一个赞框

  1. 导航到站点中要添加 portlet 的位置。

  2. 单击“管理 portlet”。

  3. 单击下拉菜单以将 portlet 添加到您希望出现点赞框的列中,然后选择“Facebook 点赞框”。

  4. 粘贴您要推广的 Facebook 主页的 URL。

  5. 您可以配置是否显示活动流、要显示的粉丝连接数以及点赞框的宽度。

  6. 单击保存并返回到您分配portlet 的位置以查看Like 框。

提要表单 Portlet

Facebook 允许网站使用stream.publish API 方法向用户的活动流发布消息。

collective.simplesocial 提供了一个“Feed Form”portlet。这允许您配置一个对话框,该对话框将在页面加载时弹出并提示用户将消息发布到他或她的 Facebook 提要。这可用于提示您的 Plone 站点的访问者公开他们在该站点上采取的某些操作。例如,您可以将此 portlet 添加到 PloneFormGen 表单的感谢页面,要求用户告诉他或她的朋友有关该站点的信息。

要查看正在使用的提要表单 portlet 的演示,请观看截屏视频

先决条件

要使用 Feed 表单 portlet,您必须首先完成创建 Facebook 应用程序部分中的步骤。

添加提要表单

  1. 导航到站点中要添加 portlet 的位置。

  2. 单击“管理 portlet”。

  3. 单击下拉列表将 portlet 添加到您希望显示提要表单的列中,然后选择“Facebook 提要表单”。

  4. 根据提示编辑设置。完成后,单击保存。

  5. 返回到您分配 portlet 的位置以查看提要表单。

如果带有提要表单的页面的访问者未登录 Facebook,则提要表单不会自动出现。相反,将显示一条消息以及一个 Facebook 登录按钮。单击此按钮将允许访问者登录 Facebook,之后将显示提要表单。

自定义提要附件

当用户提交提要表单时,collective.simplesocial 会向 Facebook 发送一个附件,其中包含有关显示提要表单的内容项的信息。默认情况下,此附件包含以下信息:

  • 内容项的标题

  • 内容项的 URL

  • 内容项的描述,如果它提供了一个

  • 内容项的平铺图像(如果提供)或站点徽标

这些默认值由 DefaultFeedFormDataProvider 适配器提供。通过注册提供 IFeedFormDataProvider 接口的适配器,可以全局覆盖默认值或特定内容类型的默认值。此接口提供了用于获取当前上下文的附件和覆盖在 portlet 分配中指定的设置的方法。有关更多信息,请参阅collective.simplesocial.feedform.facebookfeedform.IFeedFormDataProvider 以及stream.publish方法和流附件 对象的文档。

发布到 Facebook 粉丝专页

此功能将“发布到粉丝页面”链接添加到 Plone 页面的文档操作区域。该链接仅对经理显示。

字符串“utm_source=facebook”将添加到页面 URL,以便可以在 Google Analytics 中跟踪通过发布的链接到达您网站的访问者。

先决条件

要使用发布到 Facebook 粉丝页面功能,您必须首先完成创建 Facebook 应用程序部分中的步骤。

配置“发布到粉丝页面”功能

  1. 转到站点设置。

  2. 单击 Facebook 设置。

  3. 如果您尚未登录 Facebook,请使用提供的按钮。

  4. 在“发布到页面”选项卡上,确保选中“允许站点管理员将更新发布到 Facebook 页面”。

  5. 选择您要发布到的 Facebook 页面。单击保存。

现在,当您登录时,“发布到粉丝专页”链接应该会显示出来。要发布到 Facebook,请单击该链接。系统将提示您确认将发布的消息。

自定义 Facebook 连接集成

该产品提供了使用自定义XFBML和/或Facebook JavaScript SDK与 Facebook 集成所需的基本部分。这些包括:

  • 用于配置应用程序 ID 的 Facebook 设置控制面板。

  • SimpleSocial javascript 库,它封装了对 Facebook API 的一些最常见的调用,并提供了一个标准框架,用于在 Facebook javascript 库加载时排队和执行函数。

  • 门户顶部视图管理器中的 Facebook 初始化视图,它使用 Facebook 设置控制面板中提供的应用程序 ID 连接到 Facebook。

有了这些部分和正确的应用程序 ID,您应该能够在 Plone 模板中的任何地方使用 XFBML。您还可以使用 Facebook Javascript API。(有关正确用法,请参见下面的示例。)

杂项提示

  • TAL 解析器喜欢在使用带有“fb”XML 命名空间的标签时抱怨标签不匹配。您可能需要转义此类标签并将它们包含在 tal:replace 中,或者将它们放在单独的文件中,并通过读取该文件的浏览器视图方法包含它们。

  • Facebook javascript 库是异步加载的,这意味着在加载页面时无法立即进行 Facebook API 调用。为了解决这个问题,SimpleSocial javascript 库实现了一个队列,该队列存储依赖于 Facebook API 的函数,直到 API 完全加载。然后它按照插入顺序执行队列中的所有函数。在 Facebook API 加载后传递给队列的函数会立即执行。

    SimpleSocial.queue 的行为类似于 javascript 数组。要将函数添加到队列中,请使用 push 方法:

    SimpleSocial.queue.push(function () {
      // Do something using the Facebook API.
    });
  • 根据用户是否已经登录 Facebook 并连接到您的应用程序,使用如下逻辑执行不同的操作:

    SimpleSocial.queue.push(function () {
      FB.getLoginStatus(function (response) {
        if (response.session) {
          // The user is logged in and connected.
        } else {
          // The user is not logged in or is not connected
          // to your application.
        }
      });
    });

    有关详细信息,请参阅FB.getLoginStatus的文档。

其他 Facebook API 资源

学分

collective.simplesocial 由 David Glick 为Groundwire (原 ONE/Northwest)开发。Matt Yoder 也做出了贡献。

感谢Nouveller的 Facebook 图标。

变更日志

1.8 (2013-11-12)

  • 为 getSite 使用新的首选位置 [encolpe]

  • Plone4.3 更改 [sureshvv]

  • 添加了通道文件并更新了 SDK 初始化。[约马]

  • 修复了启用和禁用“赞”按钮时出现的权限错误。[约马]

1.7 (2011-12-12)

  • 使用 OAuth 2.0 进行身份验证。[约马]

  • 通过正确转义 init javascript 解决了 Chameleon 错误。[约马]

  • 使用社交媒体跟踪在 Google Analytics 中跟踪喜欢和不喜欢的人。[约马]

  • 将 javascript 生成从 fb_init.pt 移至视图以修复变色龙警告 [swampmonkey]

1.6 (2011-05-31)

  • 为collective.googleanalytics 添加了一个喜欢和不同的跟踪插件。[约马]

1.5 (2011-05-06)

  • 更新了创建 Facebook 应用程序的说明。[约马]

  • 添加了在“赞”框中打开和关闭个人资料图片显示的功能。[约马]

1.5b2 (2011-04-13)

  • 修复了“赞”按钮阻止复制和粘贴内容的问题。[约马]

  • 使用 simplejson/json 解决 JSON 转义问题。[约马]

1.5b1 (2011-02-23)

  • 隐藏 Like 框 portlet 的 portlet 标题。[约马]

  • 添加了一个适配器,用于查找发送到 Facebook 的图像,使其更易于定制。[约马]

  • 为 Like 按钮添加了 ref 属性。[约马]

  • 添加了对 Like 按钮和 Open Graph 元标记的支持。[约马]

  • 合并配置文件以简化升级。[约马]

  • 将控制面板表单更改为使用 z3c.form。[约马]

  • 为 Like box portlet 添加了 height 选项。[约马]

  • 删除了“赞”框的宽度限制,因为 Facebook 不再强制执行它。[约马]

  • 更新了 Like 框 portlet 选项以匹配 Facebook 的选项。[约马]

  • 为 PloneFormGen 添加了一个数据提供程序,感谢您从表单中提取附件数据的页面。[约马]

  • 修复了与缺少操作链接相关的错误。[约马]

  • 修复了带有 Sunburst 主题的 IE7 中模式对话框的位置。[约马]

1.4 (2010-09-21)

  • 从提要表单中删除了用户消息选项,因为 Facebook 不再支持它。[约马]

  • 放弃对 Internet Explorer 6 的支持,因为 Facebook 不再支持它。[约马]

  • 修复了提要表单 portlet 的操作标题中的转义错误。[约马]

  • 将风扇盒更换为类似的盒子。类似框 portlet 是使用 XFBML 呈现的,因此基本的 Facebook 支持配置文件现在是一个依赖项。[约马]

  • 利用 Facebook 的新 Javascript SDK。[约马]

  • 为 fanbox portlet 提供了默认值,因此可以使用 portlets.xml GS 文件对其进行分配。[piv]

1.3 (2010-06-02)

  • 尝试查找“image_tile”时也会捕获 NotFound。[达维萨利]

  • 为collective.googleanalytics 添加了一个feed 表单跟踪插件。[约马]

  • 添加了仅在保存后显示提要表单的选项。[约马]

  • 更改了 Facebook fanbox portlet HTML 以满足 Plone 标准,修复 #1。[贾罗尔]

1.2 (2010-04-06)

  • 修复了 JSON 序列化程序中的 unicode 解码错误。[约马]

1.1 (2010-03-26)

  • 添加了“发布到粉丝页面”功能。[达维萨利]

  • 从默认提要表单适配器中的描述中删除换行符以避免破坏 javascript。[约马]

  • 添加了一个视图以将站点徽标调整为 Facebook 所需的大小。[约马]

  • 添加了一个适配器接口,以便我们可以基于每个站点或每个内容类型覆盖提要表单 portlet 和附件设置。[约马]

1.0 (2009-12-22)

  • 添加 z3c.autoinclude Plone 插件入口点。[达维萨利]

  • 修复控制面板验证器以在 Plone 4 中工作。 [davisagli]

  • 在功能加载器初始化调用中添加了 jq() 包装器,以便在 DOM 完全加载之前不会发生。[约马]

  • 删除了 Fan Box 配置文件对基本 Facebook Connect 集成配置文件的虚假依赖。[达维萨利]

1.0b1 (2009-08-13)

  • 初始发行。[达维萨利]

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

collective.simplesocial-1.8.zip (72.9 kB 查看哈希

已上传 source