设备分享

此端点已于 2020 年 11 月 2 日停用。

通过“设备分享”功能,用户可使用设备轻松地将内容分享到 Facebook,这些设备包括智能电视、数码相框或物联网设备。

使用设备分享时,您的设备将显示字母数字代码,并提示用户将其输入至台式机或智能手机的网页中。输入后,使用您的应用或服务的用户便可使用与此代码相关联的分享对话框,与 Facebook 分享内容。

若您在针对 Apple TV 或 Android 设备构建应用,建议您分别使用 tvOS 版 SDKAndroid 版 SDK

本指南的说明内容如下:

用户体验

1.行动号召

首先考虑在用户体验中,您希望在哪里邀请用户将内容分享到 Facebook。为确保提供最佳体验,请尽量按照 Facebook 官方“分享”按钮设计按钮的外观。一般情况下,按钮应位于待分享内容的旁边。

从视觉设计的角度来说,这表示您应该

  1. 给按钮加上“分享”或“分享到 Facebook”的标签。
  2. 使用白色和 Facebook 品牌官方蓝色:#3B5998。
  3. 如果您的设备支持图形显示,您也可以给按钮加上官方“f”徽标。根据 Facebook 品牌指南,徽标应始终为白色或 Facebook 蓝色 (#3B5998)。

2.显示代码

当用户点击“行动号召”按钮时,您的设备会调用 Facebook 的 API,后者随即返回代码。

此时,在应用界面中会展示以下消息,告诉用户他们需要访问一个网站并输入该代码:“下一步,在台式机或智能手机上访问 facebook.com/device (http://facebook.com/device) 并输入此代码”。显示您从 Facebook 的设备分享 API 处收到的完整代码。代码长度介于 6 到 12 个字符之间。

添加 CloseDone 按钮,以便用户可以结束设备分享流程。

3.分享

这是用户在台式机或移动版浏览器上前往 facebook.com/device 时会看到的流程。首先,用户会看到一个文本字段,并可以在其中输入代码:

在用户输入代码并点击 Continue 后,系统将显示“分享对话框”:

用户因此可确认分享已成功,之后他们还将看到一条确认消息:

实现设备分享

Facebook 的“设备分享”功能适用于能够直接从互联网调用 HTTP 的设备。以下是您的设备可以执行的 API 调用和响应。

1.启用设备登录

加载您的应用面板,将“设置”>“高级”>“OAuth 设置”>“从设备登录”更改为“是”。

2.生成代码

当用户点击 Share 行动号召按钮时,设备应向以下地址发出 HTTP POST 请求:

POST https://graph.facebook.com/device/share
       access_token=<APPID|CLIENT_TOKEN>
       href=<LINK_TO_SHARE>

您可在“应用设置”->“高级”中找到 CLIENT_TOKEN,该口令应与您的应用编号相结合(以竖线 | 分隔),以形成完整的 access_token

若您希望分享开放图谱动态,则 API 还将支持 action_typeaction_properties,而非 href(使用与分享对话框内的开发图谱操作相同的方式)。

API 还支持 quotehashtag 参数(使用与分享对话框参数相同的方式)。

响应的形式为:

{
  "user_code": "A1NWZ9",
  "verification_uri": "https://www.facebook.com/device",
  "expires_in": 420,
}

该响应表示:

  1. 在设备上显示字符串“A1NWZ9”。
  2. 告诉用户前往“facebook.com/device”并输入该代码。
  3. 代码将在 420 秒后过期。您应在这段时间之后关闭代码显示。

3.显示代码

您的设备应显示 user_code,要求用户在电脑或智能手机上访问 verification_uri,例如 facebook.com/device。请查看用户体验

疑难解答

能否通过 HTTP 提出设备流程请求?
需要为带有口令的图谱 API 使用 TLS/HTTPS。

能否通过 GET 方法提出设备流程请求?
所有设备流程请求都应是 POST 请求。

我能否在用户已完成分享时通知用户?
否。

我能否以编程方式代表用户进行发布?
否。若要进行该操作,您必须要求用户登录,并向您授予权限以代表他们发布。请参阅使用图谱 API 进行发布以了解更多信息。