分享对话框

用户可以通过分享对话框将单条动态发布到自己的时间线、好友的时间线、小组,或发布为 Messenger 中的私信。此操作不需要 Facebook 登录或任何扩展权限,因此,这是实现网页分享最快捷的途径。

如果用户使用的浏览器未以 cookie 登录,则用于选择分享对象的下拉菜单不会出现。如果应用使用动态发布对话框而不是分享对话框,或者应用使用 iframe 网络视图,则也是如此。

要在原生移动应用中实施分享对话框,请阅读 iOSAndroid 指南。

集成

JavaScript 版 Facebook SDK 现可提供分享对话框。您可以使用下面的代码片段触发分享对话框。此外,您还可以使用网址重定向功能。如需了解相关详情,请参阅进阶主题

JavaScript 版 Facebook SDK

使用 FB.ui 函数(method 参数为 share)触发分享对话框,从而分享链接。

要分享链接:

FB.ui({
  method: 'share',
  href: 'https://developers.facebook.com/docs/',
}, function(response){});
亲身体验一下吧!

在此网址的页面上添加开放图谱元标签,自定义分享回 Facebook 的动态。

请注意,response.error_message 仅在应用用户使用 Facebook 登录功能来验证应用时才会出现。

参数

常用参数

JS 版 SDK 会自动提供这些参数。

参数说明

app_id

应用的唯一标识符。必须提供。

redirect_uri

在用户点击对话框按钮后重定向的目标网址。使用网址重定向时必须提供。

display

确定如何呈现对话框。

  • 如果使用网址重定向对话框实施方案,则对话框会在 Facebook.com 内全页显示。此显示类型被称为 page
  • 如果使用 iOS 版或 Android 版 SDK 调用对话框,则会自动指定此参数并为设备选择合适的显示类型。
  • 如果使用 JavaScript 版 Facebook SDK:对于登录应用的用户,此参数默认为模式 iframe 类型;在 Facebook.com 中的游戏内使用时,此参数默认为 async;对于其他用户,此参数默认为 popup 窗口。使用 JavaScript 版 Facebook SDK 时,如有必要,还可以强制使用 popup 类型。
  • 移动网页应用始终默认使用 touch 显示类型。

share 参数

参数说明默认

href

附加至此帖子的链接。使用 share 方法时必须提供。在此网址的页面上添加开放图谱元标签,自定义分享的动态。

当前网址

hashtag

开发者指定的话题标签,将添加至分享内容中。用户可决定是否在分享对话框中移除这种话题标签。话题标签应包含 # 符号,例如 #facebook

null

quote

将随分享的链接一同显示的引文,可由用户自行高亮选择,也可由开发者预先定义(例如文章的醒目引文)。

null

mobile_iframe

如果设置为 true,点击分享按钮后,您的网站顶部将在一个 iframe 窗口中打开分享对话框(如需了解更多信息,请参阅移动网页分享对话框)。此选项仅适用于移动平台,不适用于桌面平台。

false


响应数据

参数 说明

post_id

仅在用户通过 Facebook 登录您的应用并授予 publish_actions 时提供。如果存在,这是已发布的开放图谱动态的编号。

error_message

仅在用户通过 Facebook 登录来登录您的应用时提供。

进阶主题

您还可以利用以下高级功能:

移动网页分享对话框

移动网页分享对话框也能够以 iFrame 窗口的形式显示在内容的顶部。完成分享操作流程后,该对话框将消失,而用户将回到之前所在的内容位置,以便轻松继续阅读内容。

代码示例

要让移动网页分享对话框显示在 iframe 窗口中,请将属性 mobile_iframe 设置为 true

FB.ui({
  method: 'share',
  mobile_iframe: true,
  href: 'https://developers.facebook.com/docs/',
}, function(response){});
亲身体验一下吧!

网址重定向

要分享链接:

https://www.facebook.com/dialog/share?
  app_id=145634995501895
  &display=popup
  &href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2F
  &redirect_uri=https%3A%2F%2Fdevelopers.facebook.com%2Ftools%2Fexplorer

注意: 测试此代码时,请删除换行符,否则会收到报错。

开放图谱操作

使用 FB.ui 函数触发分享对话框,可分享开放图谱动态。函数的 method 参数为 share_open_graph

要使用对话框分享开放图谱动态:

FB.ui({
  method: 'share_open_graph',
  action_type: 'og.likes',
  action_properties: JSON.stringify({
    object:'https://developers.facebook.com/docs/',
  })
}, function(response){});

请注意,网址重定向与标准链接分享的运作方式一样。

share_open_graph 参数

使用分享标准链接时所用的相同参数,并添加以下参数:

参数 说明

action_type

指定要发布的开放图谱操作类型的字符串,例如,内置赞类型为 og.likes。对话框还支持获得批准的自定义类型。使用 share_open_graph 方法时必须提供。

action_properties

键/值对的 JSON 对象,指定对应于要使用的 action_type 的参数。有效的键/值对是指,可以在通过 API 发布开放图谱操作时使用的那些参数。使用 share_open_graph 方法时必须提供。

share_open_graph 对话框不支持 mobile_iframe: true