如何检测用户是否登录了 Facebook?

2024-01-22

这是我的场景。当用户打开浏览器并访问 facebook.com 进行登录时,我希望能够检测到这一点并启动我的 Facebook 应用程序登录过程。

那可能吗?我之所以这么问,是因为我注意到登录 Facebook 本身不会让我的应用程序自动登录,这不太好。

我更喜欢 JavaScript 客户端代码。


UPDATE:在这里你有一个全面运作例子。您唯一需要做的就是将 APP_ID 替换为您在以下位置签署应用程序时获得的任何 ID:http://www.facebook.com/developers/ http://www.facebook.com/developers/以及您可用于本地主机测试的端口。即使在另一个浏览器窗口中,它也会检测用户何时登录。它显然是非常基础的,但证明了使用图形 API 中的工具是可行的。


可以添加这段代码来检测用户什么时候登录。无论用户点击什么,都是同一个oauth登录<fb:login-button>或直接登录 facebook.com:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Hello App Engine</title>
        <SCRIPT type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></SCRIPT>
  </head>

  <body>
    <h1>Hello!</h1>

<div id="fb-root"></div>
<script type="text/javascript">
FB.init({
    appId  : APP_ID,
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
});

/*
 * Authentication functions
 */
FB.Event.subscribe('auth.login', function (response) {
    welcomeMsg(response);
});

FB.Event.subscribe('auth.logout', function (response) {
    alert ("Good bye!");
});

if (FB.getSession() != null) {
    FB.api('/me', function(response){
        console.log(response.name);
        welcomeMsg(response);

    })
} else {
    window.setTimeout(function(){window.location.href="http://localhost:8888"},5000);
}


function welcomeMsg(userData) {
    console.log ("Welcome " + userData.name);
}
    </script>
  </body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检测用户是否登录了 Facebook? 的相关文章

随机推荐

  • moment 与 date-fns 区域设置日期格式

    我正在我们的应用程序的上下文中评估 DateFns 和 Moment 并发现 DateFns 中似乎有一个重要的遗漏 在 Moment 中 区域设置支持允许您格式化日期或时间的区域设置正确的表示形式 例如 日期格式 LL 和 L 将为英语区
  • 如何明智地处理版本控制和核心数据模型?

    当我们使用 git 将 Core Data 模型文件置于版本控制之下时 我们总是会遇到合并更改的可怕时间 我们发现避免手动合并更改的唯一可靠方法是在团队之间进行沟通以阻止访问当一个人做出必要的改变并推动时 然后是下一个人 依此类推 当然有更
  • Django 管理 - 排序 list_filter

    我在 list filter 中有 版本 我希望最新版本位于 全部 列表项之后 在这种情况下 如何对列表进行降序排序 全部 3 6 99 108 3 6 99 107 定义模型中的默认顺序Meta class class MyModel m
  • 很少有刚体导致子弹物理缓慢

    我目前正在将物理引擎 BulletPhysics 集成到我的图形引擎中 在此之前 我使用 SAP 和 Narrowphase 算法实现了简单的碰撞系统 SAP 和 Narrowphase 的时间成本为 3ms 大约有 300 个对象 由于我
  • 相同的 typeid 名称但不是 std::is_same

    使用 C gcc 4 8 3 我有 2 种类型 T1 and T2 具有奇怪的性质typeid T1 name and typeid T2 name 是相同的但是std is same
  • 在Jmeter中提取数组中的json

    如何提取json对象name从下面json data in Jmeter name x age 50 gender Female 我正在做这个 name在 JsonPath Extractor 中 它在我提取到的变量中给出了这个 name
  • 通过模板渲染时材质列表项看起来不同

    我有一个角度材质列表 我想根据外部提供的模板来渲染项目 然而 这似乎影响了mat list item组件呈现内容 特别是matLine孩子们 按如下方式显式定义项目渲染可以按预期工作
  • TCP 与 UDP - 什么是 TCP 连接? [复制]

    这个问题在这里已经有答案了 TCP 连接到底是什么 据我所知 从客户端到服务器没有物理连接 此连接是否只是客户端的套接字与服务器在三次握手后创建的新套接字链接 此后 一旦建立了 连接 连接两端的套接字就知道将其数据包发送到哪里 除了与 TC
  • 声明一个未知大小的数组

    这不是特定于任何编程语言的 问题是 在 n 个数字的数组中查找指定值的索引 现在我的问题是 在下面的代码中你能声明一个数组吗 int n read n int array n 或者这是允许的 int n array n read n 我认为
  • android api 29 上的 adb remount 是否损坏?

    adb remount从模拟器运行时 无法在 api 29 上正常工作 该命令在已尝试过的所有其他模拟器 18 23 25 26 27 和 28 上运行良好 有什么想法可能是为什么吗 Skip mounting partition prod
  • 空数组作为 PostgreSQL 数组列默认值

    我在 postgresql 9 4 数据库中定义了一个数组字段 character varying 64 我可以有一个空数组吗 作为该字段的默认值 设置的语法是什么 如果仅设置括号 则会出现以下错误 SQL error ERROR synt
  • 尽管有两组使用 ggplot2,但具有单回归线的散点图

    我想用 ggplot2 生成一个散点图 其中包含穿过所有数据点 无论它们来自哪个组 的回归线 但同时通过分组变量改变标记的形状 下面的代码生成组标记 但出现两条回归线 每组一条 model lm df ParamY ParamX p1 lt
  • getSupportActionBar() 使用 Robolectric 返回 null

    当我通过基于 Roboelectric 和 JUnit 的测试用例调用 getSupportActionBar 方法时 该方法返回 null 这是我的简单测试用例 package com mobile test import static
  • Wildfly 上的 Db2 驱动程序/数据源设置:无法加载驱动程序 [com.ibm] 的模块

    我想在我的 Wildfly 服务器 Wildfly 8 0 0 Final 和 8 1 0 上配置 db2 的数据源 但这样做遇到了一些问题 我的研究告诉我这是一个两步过程 将驱动程序作为模块安装在 JBOSS HOME modules c
  • constexpr 与未触及的非 constexpr 参数:谁是正确的,clang 还是 gcc?

    我有 4 个测试用例 我相信它们都是有效的 constexpr int f int const unused return 1 void g int const p constexpr int a f p clang error gcc v
  • 使用 Type 对象创建泛型

    我正在尝试使用 Type 对象创建泛型类的实例 基本上 我将在运行时拥有不同类型的对象的集合 并且由于无法确定它们到底是什么类型 所以我认为我必须使用反射 我正在做类似的事情 Type elType Type GetType obj Typ
  • 让 IntelliJ 了解属性文件

    有没有办法告诉 IntelliJ 某个特定的 properties文件将被加载到项目的环境中 我们用 PropertySource注释来加载属性文件 并在多个位置从由已配置的属性确定的文件加载覆盖值 如下所示 Configuration P
  • 如何在 WooCommerce 产品描述中显示所有图像

    我想用单个产品页面中的描述 所有产品图片 包括变体产品图片 替换我的产品描述 我可以使用 Magento 做到这一点 但现在当更改为 Woocommerce 时我不能 经过研究 我尝试使用过滤钩 但没有成功 我可以在产品描述中添加文本 但我
  • WCF 将对象返回给客户端

    我正在尝试使用 WCF 但我认为我遇到了障碍 我的问题是我可以打电话Add double double and getPerson 来自 客户 但是 我无法调用任何方法Person目的 我用简单的方法剥离了类 这是我的代码片段 请让我知道我
  • 如何检测用户是否登录了 Facebook?

    这是我的场景 当用户打开浏览器并访问 facebook com 进行登录时 我希望能够检测到这一点并启动我的 Facebook 应用程序登录过程 那可能吗 我之所以这么问 是因为我注意到登录 Facebook 本身不会让我的应用程序自动登录