Plone的基本Facebook Connect支持
项目描述
简介
collective.simplesocial公开了Facebook API的一些基本功能,以便在Plone中使用。
此Plone附加产品的目标包括
提供作为自定义Facebook API集成的基石所需的基本基础设施。(例如,应用程序ID配置,包含所需代码片段)
无需深入了解Facebook 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应用。为此,请按照以下步骤操作
访问Facebook开发者应用。如果提示,允许它访问您的个人资料。
单击“设置新应用”按钮,并填写表单。
注意显示的《应用ID》。
在Facebook应用的设置中,单击“连接”标签。在“连接URL”字段中输入站点的URL。
返回您的Plone站点,并在Facebook设置控制面板中输入Facebook应用ID。然后使用提供的按钮登录Facebook并与您的Facebook应用连接。
点赞盒组件
Facebook提供了一个基本的点赞盒小部件,可以用来通过提示访问您网站的用户点赞页面,并允许他们查看页面的活动流和粉丝。collective.simplesocial允许将点赞盒作为组件插入。
先决条件
要使用“赞盒”组件,您必须完成《创建 Facebook 应用》部分的步骤。创建 Facebook 应用。您还需要一个 Facebook 页面。注意页面的 URL,并在创建组件时输入。
添加赞盒
导航到您想添加组件的网站位置。
点击“管理组件”。
点击下拉菜单,将组件添加到您希望赞盒显示的列中,并选择“Facebook 赞盒”。
粘贴您想推广的 Facebook 页面的 URL。
您可以选择是否显示活动流,显示的粉丝连接数以及赞盒的宽度。
点击保存并返回您分配组件的位置查看赞盒。
动态表单组件
Facebook 允许网站使用 stream.publish API 方法向用户的动态流发布消息。
collective.simplesocial 提供了一个“订阅表单”组件。这允许您配置一个在页面加载时弹出的对话框,提示用户将其 Facebook 动态消息中的消息发布出去。这可以用来提示访问您 Plone 网站的访客宣传他们在网站上采取的一些行动。例如,您可以将此组件添加到 PloneFormGen 表单的感谢页面,要求用户告诉他们的朋友关于该网站的消息。
要查看订阅表单组件的使用演示,请观看 screencast。
先决条件
要使用订阅表单组件,您必须首先完成《创建 Facebook 应用》部分的步骤。
添加订阅表单
导航到您想添加组件的网站位置。
点击“管理组件”。
点击下拉菜单,将组件添加到您希望订阅表单显示的列中,并选择“Facebook 订阅表单”。
按提示编辑设置。完成后,点击保存。
返回您分配组件的位置查看订阅表单。
如果访问带有订阅表单的页面的访客未登录 Facebook,则订阅表单不会自动显示。相反,将显示一条消息以及一个 Facebook 登录按钮。点击此按钮将允许访客登录 Facebook,之后订阅表单将显示。
自定义订阅附件
当用户提交订阅表单时,collective.simplesocial 会将有关在显示订阅表单的内容项的信息作为附件发送到 Facebook。默认情况下,此附件包含以下信息
内容项的标题
内容项的URL
如果提供,则内容项的描述
如果内容项提供了标题图像,则为该内容项的标题图像,或为网站标志
这些默认值由 DefaultFeedFormDataProvider 适配器提供。可以通过注册一个提供 IFeedFormDataProvider 接口的适配器来全局或针对特定内容类型覆盖默认值。此接口提供获取当前上下文附件的方法以及覆盖组件分配中指定的设置的方法。有关更多信息,请参阅 collective.simplesocial.feedform.facebookfeedform.IFeedFormDataProvider 以及 stream.publish 方法和 stream attachment 对象的文档。
发布到Facebook粉丝页面
此功能在 Plone 页面的文档操作区域添加了一个“发布到粉丝页面”链接。该链接仅对管理员显示。
字符串“utm_source=facebook”将被添加到页面 URL 中,以便可以通过 Google Analytics 跟踪通过发布链接到达您网站的用户。
先决条件
要使用“发布到 Facebook 粉丝页面”功能,您必须首先完成《创建 Facebook 应用》部分的步骤。
配置“发布到粉丝页面”功能
转到站点设置。
单击Facebook设置。
如果您尚未这样做,请使用提供的按钮登录Facebook。
在“发布到页面”选项卡上,请确保已勾选“允许网站管理员向 Facebook 页面发布更新”。
选择您想要发布到的Facebook页面。点击保存。
现在,在您登录后,应该会显示“发布到粉丝页面”链接。要发布到Facebook,请点击该链接。您将需要确认要发布的信息。
自定义Facebook Connect集成
本产品提供与Facebook集成的必要组件,使用自定义XFBML和/或Facebook JavaScript SDK。这包括
Facebook设置控制面板,用于配置您的应用程序ID。
SimpleSocialjavascript库,它包装了一些对Facebook API最常见的调用,并在Facebookjavascript库加载时提供一个标准的框架来排队和执行函数。
在portaltop视图管理器中的Facebook初始化视图小部件,它使用Facebook设置控制面板中提供的应用程序ID连接到Facebook。
有了这些组件和正确应用程序ID,您应该能够在Plone模板的任何地方使用XFBML。您还可以利用Facebook JavaScript API。(见下面的示例以了解正确用法。)
其他技巧
TAL解析器喜欢在使用具有“fb”XML命名空间的标签时抱怨标签不匹配。您可能需要转义这些标签,并使用tal:replace包含它们,或者将它们放入单独的文件中,并通过读取该文件的浏览器视图方法包含它们。
Facebookjavascript库是异步加载的,这意味着在页面加载时不能立即调用Facebook API。为了解决这个问题,SimpleSocialjavascript库实现了一个队列,用于存储依赖于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初始化。[yomatters]
修复了启用和禁用“赞”按钮时的权限错误。[yomatters]
1.7 (2011-12-12)
使用OAuth 2.0进行身份验证。[yomatters]
通过正确转义initjavascript解决了Chameleon错误。[yomatters]
使用社交媒体跟踪在Google Analytics中跟踪赞和取消赞。[yomatters]
将javascript生成从fb_init.pt移动到视图,以解决Chameleon警告[swampmonkey]
1.6 (2011-05-31)
为collective.googleanalytics添加了赞和取消赞跟踪插件。[yomatters]
1.5 (2011-05-06)
更新了创建Facebook应用的说明。[yomatters]
添加了在“赞”框中切换显示或隐藏个人照片的功能。[yomatters]
1.5b2(2011-04-13)
修复了“赞”按钮的问题,防止内容复制和粘贴。[yomatters]
使用simplejson/json解决JSON转义问题。[yomatters]
1.5b1(2011-02-23)
隐藏了“赞”框小部件的标题。[yomatters]
添加了一个查找发送到Facebook的图片的适配器,使其更容易定制。[yomatters]
为“赞”按钮添加了ref属性。[yomatters]
添加了对“赞”按钮和Open Graph元标签的支持。[yomatters]
合并配置文件以简化升级。[yomatters]
将控制面板表单更改为使用z3c.form。[yomatters]
为“赞”箱小部件添加了高度选项。[yomatters]
由于Facebook不再强制执行,已移除“赞”箱的宽度限制。[yomatters]
更新“赞”箱小部件选项以匹配Facebook的选项。[yomatters]
为PloneFormGen的感谢页面添加了数据提供程序,该程序从表单中拉取附件数据。[yomatters]
修复了与缺失操作链接相关的错误。[yomatters]
修复了使用Sunburst主题的IE7中模态对话框的位置。[yomatters]
1.4 (2010-09-21)
由于Facebook不再支持,已从源表单中删除用户消息选项。[yomatters]
由于Facebook不再支持,已停止支持Internet Explorer 6。[yomatters]
修复了源表单小部件操作标题中的转义错误。[yomatters]
用“赞”箱替换了粉丝箱。由于“赞”箱小部件使用XFBML渲染,因此基本Facebook支持配置文件现在是依赖项。[yomatters]
利用了Facebook的新JavaScript SDK。[yomatters]
为粉丝箱小部件提供默认值,从而使得使用portlets.xml GS文件分配成为可能。[piv]
1.3 (2010-06-02)
在尝试查找“image_tile”时也捕获了NotFound。[davisagli]
为collective.googleanalytics添加了源表单跟踪插件。[yomatters]
添加了在保存后仅显示源表单的选项。[yomatters]
将Facebook粉丝箱小部件的HTML更改为符合Plone标准,修复了#1。[jaroel]
1.2 (2010-04-06)
在JSON序列化器中修复了Unicode解码错误。[yomatters]
1.1 (2010-03-26)
添加了“发布到粉丝页面”功能。[davisagli]
从默认源表单适配器中的描述中删除了换行符,以避免破坏JavaScript。[yomatters]
添加了一个视图,用于将网站标志调整为Facebook所需的大小。[yomatters]
添加了一个适配器接口,这样我们就可以根据网站或内容类型覆盖源表单小部件和附件设置。[yomatters]
1.0 (2009-12-22)
添加z3c.autoinclude Plone插件入口点。[davisagli]
修复了控制面板认证器以在Plone 4中工作。[davisagli]
在功能加载器初始化调用中添加了jq()包装器,这样它就不会在DOM完全加载之前发生。[yomatters]
删除了粉丝箱配置文件对基本Facebook Connect集成配置文件的虚假依赖。[davisagli]
1.0b1 (2009-08-13)
首次发布。[davisagli]
项目详情
collective.simplesocial-1.8.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 47d5f9bbdc5d0c803474cff9b0f4fd042f65f5ca2c4d0a825edd61a84d88a929 |
|
MD5 | e9075870bdd5a49eb6c91596c2cef3b8 |
|
BLAKE2b-256 | bf1196098754f899dbfa36be3f34276ca025fff6335237547839edae6475874f |