问题标签 [facebook-authentication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
11719 浏览

php - PHP SDK 3.1.1 getUser() 有时返回 0

这让我发疯>=(

$facebook->getUser() 有时效果很好,但有时返回 0

这是我的代码: require 'fbapi/facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'xxxxx',
));
$user = $facebook->getUser();

appIdsecret是正确的。

这可能是 getUser 有时返回 0 的原因???

0 投票
3 回答
4682 浏览

login - Facebook登录按钮在登录然后注销后不再出现

我的 facebook 登录按钮运行良好:

用户登录后,该 facebook 登录按钮就会消失。在我的注销按钮上,我有这样的东西:

当我点击那里时,我同时退出了 facebook 身份验证机制和我自己的网站。然后我再次看到“使用 Facebook 登录”按钮。

FB.logout()问题是,当您注销(并被调用)时,我突然注意到Facebook 登录没有重新出现!那你有点卡住了。发生了什么变化?如果我从 Firebug 调用它:

我会收到一条警告说未登录。但是,如果我打电话FB.login(),我会得到:

用户已连接时调用 FB.login()

知道发生了什么吗?如何让 Facebook 登录按钮在有人注销后重新出现?

0 投票
1 回答
805 浏览

authentication - 如何将授权码从 JSP 传递到 Servlet

我不知所措,7 个小时,还在数着呢。

我是 FB 开发的新手,在将授权代码从我的 JSP 传递到我的 Servlet 时遇到问题。

1.) 我在我的 JSP 中使用社交插件登录,如下所示

这会使用户登录并允许他们授予我的应用访问他们的个人信息的权限

2.) 一旦登录和授权成功,用户就会通过下面的代码从 JSP 转发到我的 servlet

3.)但是当我尝试在我的 Servlet 中获取授权代码(以便我可以获取 auth.token)时,“代码”为空,请参阅下面我用来检索的代码

谁能告诉我我做错了什么?我确定我错过了一些如此简单的东西..或者我正在尝试做更多不必要的事情,在此先感谢

0 投票
1 回答
90 浏览

facebook - 过去约 48 小时内是否有任何改变会破坏使用 require_login() 的旧版画布应用程序?

我没有任何改变(至少我认为没有任何改变),但突然之间我无法启动我的应用程序(据报道用户无法安装/启动),它使用了旧的 require_login() 函数来自旧版本的 PHP SDK。

当我访问 apps.facebook.com/myapp 时,我进入了该 URL 和http://mysite.com/myAppsCanvasURL之间的重定向循环。

我用谷歌搜索了一些旧帖子,人们报告了类似的行为,但似乎没有任何解决方案,我仍然不知道是什么原因导致这种情况突然发生。

任何帮助将不胜感激。

谢谢!

  • 夏普
0 投票
3 回答
1356 浏览

php - Facebook 重新获得用户的许可以访问其他数据

我有一个名为 fbmain.php 的文件,它将对用户进行身份验证。

我已将 fbmain.php 文件包含到我的 index.php 文件中并访问用户数据。
后来我想访问用户生日。所以我在 fbmain.php 文件中添加了“user_birthday”权限引用。下面给出了代码

index.php 文件的代码如下所示,

如果 $me['birthday'] 返回空值,我将用户重定向到请求用户生日的权限窗口。我必须添加这部分,因为我稍后将 user_birthday 添加到权限引用的范围内。
这适用于某些用户并显示“请求权限”窗口,要求访问用户的生日。
但是对于某些用户,它会显示一条 facebook 错误消息(可能是因为我在显示“请求权限”窗口之前尝试访问用户的生日:$me['birthday']==null)
谁能告诉我一个正确的方法来获取用户重新许可访问用户生日?

请注意,此问题仅发生在已在我的应用程序中进行身份验证的用户

0 投票
1 回答
4854 浏览

php - Facebook JS SDK 和 PHP SDK 访问令牌冲突

我已经搜索了 StackOverflow,甚至在没有帮助的情况下向 facebook 提交了一个错误。我花了整整 40 多个小时来确定这一点。我相信这是 FB.INIT 和 PHP 访问令牌之间的冲突,当服务器有大量的 .htaccess Mod Rewrites 以将 url 更改为有效的查询字符串时。我把它写成一个错误,但 Facebook 认为这是一个用户问题。我什至在他们的答案中使用了代码,但它仍然存在错误。

这是原始问题。在我的测试站点上,我可以让 PHP SDK 和 JS SDK 正常工作。两者都允许登录并相互协调工作。在浏览页面或执行我将要更新客户端的所有功能时没有问题。

现在我正在尝试将更新的新 OAuth 安装到我的客户站点中,并使用大量的 .htaccess mod Rewrites。我的测试站点没有 Mod ReWrites。

起初你可以用 PHP 登录就好了。但是,一旦您转到站点内的另一个页面,您就会丢失访问令牌,并出现常见错误:必须使用活动访问令牌来查询有关当前用户的信息。

通过检查 PHP api 是否失败,然后使用从 Facebook 自己的授权页面获取的 file_get_contents 命令(针对:https ://graph.facebook.com/oauth/access_token ?)并重置访问令牌来解决此问题。这行得通。但这随后导致 FB.init 因响应错误而失败:必须使用活动访问令牌来查询有关当前用户的信息。由 FB.api('/me') 回调

所以为了解决这个问题,我必须将 PHP 的访问令牌传递给 SESSION 并将其放在我的 api 调用中。就像这样,FB.api('/me/?access_token=')。这行得通。所以现在我的网站通过以 JS 为辅助的主宰 PHP 与 Facebook 合作。

CURRENT ISSUE: 如果用户访问该站点并且没有登录标准的 PHP Facebook 功能并使用使用 FB JS SD 的功能;该站点提示具有该站点功能的适当权限的 JS 登录。用户接受并登录。从 JS 的角度来看,一切都很好。console.log 转储一页一页地告诉我这一点。

问题:PHP 不会从 JS SDK 设置的 cookie 中确认 Access_token,也不会从 file_get_contents 接收 cookie(回退失败的 HTTP 请求 400)。所以当用户通过 JS 登录时,PHP 将不接受他们的登录并仍然显示 PHP getLoginUrl 函数。

当对 PHP facebook 对象执行 var_dump 时,我们会看到所有字段都包含数据;代码、状态、access_token、算法等。但是,当在每个页面上执行 $facebook->api('/me') (上面是成功的)时,我们会收到错误:必须使用活动访问令牌来查询有关当前用户的信息。

我的结论:基于 JS 的感知 URL 和 PHP 的实际 url 生成不匹配的代码。在更容易强制 JS 使用 PHP 访问令牌的地方,对于 PHP 被 JS 支配,同样无法做到这一点。

这是每个页面上的 PHP 代码。

使用的Javascript:

回答:

答案是:让 Javascript 成为主要的入口点。你不能两者兼得。您必须选择其中之一,PHP 或 javascript 并让它们成为主宰以强制另一个的 Access Token。这是Javascript:

createCookie 和eraseCookie 是可以通过网络找到的cookie 函数。这是粗略的代码而不是精炼的代码。基本上我创建自己的 Cookie 来传递信息。由于 FB JS SDK 在登录和注销时刷新页面,我可以在 PHP 接管页面刷新之前删除和创建 cookie 或修改它们。

现在这里是强制 JS cookie 访问令牌的 PHP。

希望这可以帮助。

0 投票
1 回答
169 浏览

login - Flex & JS 用 facebook 登录

我在 Flex 中有一个应用程序,在 HTML 文件中我有一些 javascript 脚本。Javascript 首先登录到 Facebook,并在加载 Flex 应用程序之前根据用户和配置执行一些操作。一旦一切正常,Flex 应用程序就会加载并再次登录到 Facebook,这就是不便之处。它会出现一个来自 Facebook 的弹出窗口,停留 2 或 3 秒,然后再次关闭。

好吧,一切都很完美。问题是我们注意到启用了“阻止弹出窗口”选项的浏览器,不让登录并且 Flex 应用程序无法正常启动。

你介意给我一个建议,告诉我应该怎么做才能避免这种情况吗?

提前致谢。

0 投票
1 回答
3538 浏览

facebook - 如何为子域配置 Facebook 应用程序

我正在构建一个多租户应用程序,并且正在努力将 Facebook 登录名整合到 Web 应用程序中。

例如,租户正在使用子域

所以,我已经创建了一个应用程序,在添加网站时,我怎样才能让它在所有租户中都可用?就像是:

在此处输入图像描述

但是,当然,这不起作用,如果我只添加http://domain.com/它也不起作用,http://tenant-1.domain.com/只要我点击<fb:button-login>我得到:

在此处输入图像描述

如何在不为每个租户创建特定 FB 应用程序的情况下执行此操作?

我用它来帮助人们订阅他们的帐户,我只想让登录名和电子邮件,或者他们需要把它放在名字和电子邮件框中......

0 投票
1 回答
433 浏览

oauth - 登录按钮和 OAuth 2.0 之间的关系是什么

Facebook for Websites中,关于如何使用 Javascript SDK 在我的网站中添加漂亮的“使用 Facebook 登录”按钮有一个非常浅显的解释。标签fb:login-button的参考文档也好不了多少,但至少说我可以在没有 XFBML 的情况下使用它,但在细节上不是很具体。

另一方面,身份验证文档非常详细,并解释了我需要知道的关于如何在我的网站中使用 OAuth 系统的所有内容,用一种我能很好理解的语言,谈论 HTTP 请求等。但我需要在我的网站中提供一个链接,将用户重定向到 Facebook,而不是使用 fb:login-button 获得的弹出窗口。

该 fb:login-button 与身份验证页面中解释的方法有什么关系?如何在弹出窗口中使用按钮?如何设置我的 redirect_uri?我怎样才能访问用户的ID?

0 投票
0 回答
5647 浏览

facebook - 在 OAuth2 迁移后,https://www.facebook.com/dialog/oauth API 调用是否有效?

我正在拼命寻找 bromo http://forum.developers.facebook.net/viewtopic.php?id=106817在论坛上提出的以下问题的答案。

我们目前使用的有什么区别

以及现在出现在文档中的内容

我在 Facebook 文档中找不到任何关于“https://www.facebook.com/dialog/oauth”仍然有效或者是否会随 Oauth2 迁移而被弃用的参考。

谢谢戴夫