“登录”按钮是一种可在网站或网页应用上触发 Facebook 登录流程的简单方式。
如果用户尚未登录您的应用,则他们将会看到此按钮,点击此按钮将会打开一个登录对话框,开始登录流程。已经登录的用户不会看到任何按钮,但您也可以选择向此类用户显示退出按钮。
如果显示退出按钮,则当用户使用此按钮退出时,他们会同时退出您的应用和 Facebook。
“登录”按钮仅设计用于与 JavaScript SDK 搭配使用;如果您正在构建移动应用,或者无法使用 JavaScript SDK,则应改为遵循面向此类应用的登录流程指南进行操作。
继续使用 Facebook 按钮会取代旧版“登录”按钮。详情请参阅转换。
以 {Name} 的身份继续按钮会显示文本“以 {persons' name} 的身份继续”;如果用户使用相同的浏览器登录 Facebook,则可选择添加其 Facebook 头像。如要使用以 {Name} 的身份继续按钮,您必须首先加载 JavaScript SDK。如要获取有关设置 JavaScript SDK 的说明,请参阅 JavaScript SDK 快速入门。将 data-use-continue-as="true"
添加到按钮设置中,即可启用以 {Name} 的身份继续。
用户无法自定义以 {Name} 的身份继续按钮的高度。
按钮尺寸 | 高度 | 宽度 | 能否自定义宽度? |
---|---|---|---|
小 | 20 像素 | 200 像素 | 否 |
中 | 28 像素 | 200 - 320 像素 | 是 |
大 | 40 像素 | 240 - 400 像素 | 是 |
如果您选择的尺寸超过最大参数,按钮将默认显示最大宽度。
以 {Name} 的身份继续按钮可以大幅提高点击量和使用量。用户可在“登录”按钮上看见自己的头像和姓名,这会让您的应用更加人性化。
如果用户没有想到会在此处看到自己的姓名和头像,这也可能会造成困扰。请考虑以下几点,判断以此身份继续是否最适合您的应用。
即使以 {Name} 的身份继续不适合您的应用,您仍然可以尝试使用显示文本为“继续使用 Facebook 登录”的新 JavaScript SDK 按钮。
我们的服务对象是全球用户,不同地区的用户有着不同的期望。使用此按钮时,请尊重相应的用户期望。
您的应用属于社交应用:
当用户使用社交应用时,他们希望能与他人交流。我们已经看到以 {Name} 的身份继续在此类情形中效果良好。
目标市场中的用户共用手机:
当多名用户使用同一部手机时,以 {Name} 的身份继续能够让他们确信自己在使用正确的帐户登录。
您的应用是新应用:
如果您的应用刚刚进入市场,相较于那些知名度较高或用户打算经常使用的熟悉应用而言,若用户看到系统自动显示自己的姓名和头像,他们很可能会感到困惑。
目标市场中的用户担心自己的隐私:
在许多国家/地区,头像属于十分私密的资料。在此情况下,您可能需要避免使用以 {Name} 的身份继续,因为此按钮会显示已登录用户的头像。
使用 Facebook 登录时,请遵循通用的最佳实践。在使用以 {Name} 的身份继续时,请重点遵循以下两条最佳实践:
部分其他可行的最佳实践:
<script> var finished_rendering = function() { console.log("finished rendering plugins"); var spinner = document.getElementById("spinner"); spinner.removeAttribute("style"); spinner.removeChild(spinner.childNodes[0]); } FB.Event.subscribe('xfbml.render', finished_rendering); </script> <div id="spinner" style=" background: #4267b2; border-radius: 5px; color: white; height: 40px; text-align: center; width: 250px;"> Loading <div class="fb-login-button" data-max-rows="1" data-size="large" data-button-type="continue_with" data-use-continue-as="true" ></div> </div>
除了上述设置外,您还可更改以下设置:
设置 | HTML5 属性 | 描述 | 选项 |
---|---|---|---|
|
| 启用后,该按钮将在用户登录后变为退出按钮。 |
|
|
| 登录流程完成后触发的 JavaScript 函数。 |
|
|
| 登录期间需请求的权限列表。 |
|
|
| 为该按钮选择一个尺寸选项。 |
|
|
| 用于确定请求写入权限时默认选择的分享对象。 |
|
旧按钮将转换为新按钮。两者的对应关系如下表所示。
旧按钮 | 旧高度 | 新按钮 | 新高度 |
---|---|---|---|
图标 | 18 像素 | 已停用 | 已停用 |
小 | 18 像素 | 小 | 20 像素 |
中 | 22 像素 | 小 | 20 像素 |
大 | 25 像素 | 小 | 20 像素 |
超大 | 39 像素 | 小 | 20 像素 |
新的以 {Name} 的身份继续按钮有一个名为 button_type
的参数,而旧按钮不要求使用该参数。此参数用于指定继续使用 Facebook 登录还是使用 Facebook 登录按钮。如不指定按钮类型,按钮将显示为新版小按钮。与旧按钮相比,新按钮的尺寸适中。对于 x-large
,按钮会略微缩小。如果您指定了 button_type
参数,则按钮将按指定的参数显示。
您可以尽快启动 JavaScript SDK,以加快按钮的加载速度。但系统加载按钮时,必须先等待网页和 JavaScript 完成加载,之后才能创建 iframe 并加载资源,以显示按钮。
<div class="fb-login-button" data-max-rows="1" data-size="<medium, large>" data-button-type="continue_with" data-width="<100% or px>" data-scope="<comma separated list of permissions, e.g. public_profile, email>" ></div> }
如要以其他语言加载按钮,则需使用目标语言对应的 JavaScript SDK。如要详细了解如何本地化 JavaScript SDK,请参阅使用社交插件和 JavaScript SDK 进行本地化。
用户点击“登录”按钮、接受登录对话框并完成登录流程后,您的应用即可使用 JavaScript 版 Facebook SDK,以该用户的身份调用 API。
此处无需进行额外设置,但您可以针对此按钮使用 onlogin
设置,以便触发登录即会运行的 JavaScript 自定义函数。
可以,但您仍然需使用 JavaScript SDK 的部分功能。完成通过点击按钮启动的登录流程后,SDK 即可使用 FB.getLoginStatus()
访问 authResponse
对象。您可以使用此函数将响应对象传递至服务器端代码,以完成其中包含的各项注册。
由于请求已拒绝的权限与按钮上的动词不符,因此“登录”按钮不支持重新请求。如果需要重新请求权限,请设置自定义按钮,并按照网页版 Facebook 登录文档的说明使用 FB.login()
。
我们会使用一项名为 XFBML 的技术将 <div>
标签转换为已显示的按钮,该技术依靠 SDK 中的 JavaScript 来解析网页和作出替换。如果您在运行 SDK init
方法后动态修改网页内容,以添加这些 div
(例如在动态构建的对话框中),则为使转换生效,您需要再次调用 FB.XFBML.parse()。