如何将 Facebook onelogin 事件绑定到自定义按钮?

2024-02-20

我知道如何使用自定义按钮作为 Facebook 登录。

现在我想bind onlogin事件到自定义按钮,但我不知道该怎么做。

原始代码

<fb:login-button scope="public_profile,email" onlogin="afterLogin();">
</fb:login-button>

<script>
    /* Assume that Facebook SDK loaded asyncronously and initilized */

    function afterLogin() {
        // Do stuff
    }
</script>

我的代码

<button id="cusomized-button" onclick="fbLogin();" onlogin="afterLogin();">
    Customized button
</button>

<script>
    /* Assume that Facebook SDK loaded asynchronously and initialized */

    // Show facebook login modal
    function fbLogin() {
        FB.login(function() {}, {
            scope: 'email,public_profile'
        });
    };

    function afterLogin() {
        // Do stuff
    }
</script>

假设您使用 Graph API 2.4 版本,您可以订阅一个名为auth.login https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.4每当登录状态发生变化时就会触发该事件。

因此,如果您想在用户登录时做出反应,您可以执行此操作并将您的函数命名为afterLogin一旦用户登录到您的应用程序就会被调用:

FB.Event.subscribe('auth.login', afterLogin);

请注意,Facebook 推荐每个人都收听auth.statusChange相反,否则您的应用程序将不知道用户是否已注销或取消对应用程序的授权,这将使令牌无效。

这是一个使用的示例auth.statusChange, the response传递给函数的参数包含响应对象详细信息请参见此处 https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus#response_and_session_objects:

FB.Event.subscribe('auth.statusChange', function(response) {
    if(response.status === 'connected') {
    // `connected` means that the user is logged in and that your app is authorized to do requests on the behalf of the user
    afterLogin();
    } else if(response.status === 'not_authorized') {
    // The user is logged in on Facebook, but has not authorized your app
    } else {
    // The user is not logged in on Facebook
    }

});

作为替代方案,第一个参数FB.login是一个在用户从 Facebook 返回后调用的函数,因此您可以执行以下操作:

FB.login(function(response) {
    if (response.authResponse) {
        afterLogin();
    } else {
        // The user cancelled the login or did not authorize your app
    }
}, {
    scope: 'email,public_profile'
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Facebook onelogin 事件绑定到自定义按钮? 的相关文章

  • 如何使用 Python/Django 在 Facebook 中获取(和使用)扩展权限

    我正在尝试编写一个简单的应用程序 让用户授予我的代码写入其页面的 Facebook 流的权限 据我了解 它应该很简单 让用户单击一个按钮 启动一个弹出窗口 其中包含我的 Facebook 应用程序中的页面 在该页面中 他们单击授予的内容流发
  • Facebook - “IN”子句中参数的最大数量?

    In Facebook query language FQL 您可以指定一个IN子句 例如 SELECT uid1 uid2 FROM friend WHERE uid1 IN 1000 1001 1002 有谁知道你可以传入的参数的最大数
  • 如何在 Facebook SDK for iOS 中定义“GeoPoint”属性

    我试图通过创建一个继承预定义 地点 对象的开放图对象来对开放图故事进行地理标记 但是 我不知道如何在 iOS 中定义 GeoPoint 属性 place location 这里有一个类似问题的答案 https stackoverflow c
  • 使用 PHP 获取 URL 的 FB 点赞、分享和评论 - 无限制 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何使用 PHP 简单地获取 URL 中的点赞 分享和评论数量 使用 FQL 或 graph facebook com 的方法不再有效
  • Facebook 使用开放图协议 ID 作为地点 ID 进行签到

    我用的是FB页面linter http developers facebook com tools lint url http www foodtrucksmap com facebook html验证我使用的所有元信息是否正确 根据图表网
  • 使用 Facebook API 和 Objective C 来查找随机 Facebook 用户图像

    我正在构建一个返回随机 Facebook 个人资料图片的应用程序 到目前为止 我有下面的代码生成一个随机个人资料 ID 有时会返回真实的个人资料 但有时不会 只显示通用的蓝色 Facebook 面孔 当我在实际网站图形 API 上使用给定的
  • 脸书状态更新

    我在 Facebook 上更新状态时遇到问题 我正在使用 Facebook sdk 问题是我的状态正在发布但不显示文本 这是我的代码 gt 公共类 NetRockersUpdate 扩展 AsyncTask Override protect
  • 会员提供商使用还是不使用?

    我正在开发一个使用 Facebook 的网站 现在为了管理用户我想使用MembershipProvider并选择开发一个定制的会员提供商 我的问题是我的数据库架构与标准成员资格架构不匹配 并且提供的用于覆盖的函数采用与我预期不同的参数 例如
  • 无需刷新的“重定向”页面(Facebook 照片风格)

    我正在尝试实现内容浏览 就像用户在 Facebook 上浏览照片时一样 我想每个人都熟悉照片浏览 您可以单击 下一张 和 上一张 并立即获取下一张或上一张照片 您也可以使用箭头键导航 例如 当您单击 下一步 时 您会注意到页面没有刷新 仅刷
  • Facebook API 注销我的应用程序,但不注销 Facebook

    如何使用 Facebook 的 api 进行注销 让我退出我的应用程序 网站 但保持登录 facebook com 的状态 这让我登录正常 window fbAsyncInit function FB init appId status t
  • 如何使用 facebook 用户登录我的网站?

    我想知道 facebook 如何让用户登录我们的网站 我的意思是用户需要注册到我的网站才能发表评论 我如何通过我的 php 代码检查它是否是登录用户 我听说你只能用javascript检查它是否是登录用户 感谢您的任何解释 您可以使用脸书
  • iPhone 应用程序拒绝 17.2:应用程序要求用户使用 Facebook 帐户登录

    我按照此处的本机 iOS 应用程序的登录说明进行操作https developers facebook com docs mobile ios build https developers facebook com docs mobile
  • Graph API / FQL 不返回页面的所有事件

    脸书页面 http facebook com getwellgabby events http facebook com getwellgabby events 目前有 8 个活动 我能看到他们 非管理员可以看到它们并可以加入它们 但是 当
  • Facebook Graph API 的发布限制

    我使用 Graph API 一段时间了 我的应用程序的一个功能是它允许用户在他们的朋友墙上发布消息 不用担心这不是垃圾邮件 无论如何 API 是有限制的 它只允许一定数量的帖子 然后就会失败 我已阅读 Facebook 存储桶分配限制 但我
  • 将您的应用程序链接到现有页面

    我搜索了又搜索 似乎找不到任何与此相关的信息 我们有一个 Facebook 页面 facebook com companyname 我们在 Facebook 上也有一个应用程序 apps facebook com companyname 我
  • Facebook GraphAPI 有限制地减少数据量

    因此 我正在努力寻找记录的位置 如果有的话 但在从 FB GraphAPI 请求数据时收到以下错误消息 Please reduce the amount of data you re asking for then retry your r
  • 如何使用 Graph API 设置 Facebook 相册隐私?

    我想知道是否可以使用 RestFB Java 库为特定 Facebook 相册设置隐私设置 非常感谢 Regards Anthony 您可以在创建相册时设置隐私设置 目前 您无法更新设置 也无法通过 API 删除现有相册 以防您只想删除并重
  • Facebook oauth/access_token 丢失

    不知道我是否错过了什么 但就这样 我正在尝试为我的应用程序获取 access token 以便它可以在 facebook 上查找某些公共群组的事件 而无需用户登录 我试图从中获取 access token 这将返回一个字符串 access
  • 如何获取 Facebook 用户当前所在的国家/地区?

    Facebook Graph API 提供了用户当前位置 http developers facebook com docs reference api user 有两种格式 名称和 ID ID 可以是这样的104022926303756
  • 本地权威声明和外部提供商声明的混淆

    我正在创建一个简单的 WebApi 它允许用户与 Facebook 连接 当我从 facebook 获取 accessToken 时 我调用 RegisterExternal 创建 Asp Net Identity 记录并存储令牌中的声明

随机推荐