Facebook 身份验证教程缺失的部分

Posted

技术标签:

【中文标题】Facebook 身份验证教程缺失的部分【英文标题】:Facebook authentication tutorial missing piece 【发布时间】:2012-01-20 23:44:54 【问题描述】:

在过去的 2 天里,我一直在努力尝试成功验证用户进入我的 Facebook 应用程序。我最终要实现的是检索和存储用户的访问令牌。 我遇到的问题是按照FB教程进行身份验证:http://developers.facebook.com/docs/authentication/

就在客户端流程部分的上方,有一段代码可以让我获取当前用户。不幸的是,我只得到一个错误:

Warning: file_get_contents(https://graph.facebook.com/me?access_token=) [function.file-get-contents]: failed to open stream: No route to host

将错误追溯到我可以的点,显然这一行有错误:

$response = @file_get_contents($token_url);

因为如果我回显 $response,我什么也得不到。

教程中没有提到我应该做但我不是因为我不知道我应该做的事情?

非常感谢

【问题讨论】:

从该调用中删除 @ 以获取该行的错误消息。 @ 抑制错误。很可能您有错误的参数app_idapp_secretmy_url(191 错误...等)。 我删除了线上的@,但错误是一样的:没有到主机的路由。如前所述 echo $response;在屏幕上不打印任何内容。 试试var_dump,你还确定你有一个有效的app_idapp_secretmy_url参数吗? 在测试时我遇到了 191 错误,所以在这种情况下,我相信这不是问题所在。如果用户已注销,那么我也会看到登录屏幕和权限屏幕。如果我回显 $token_url,打印出来的字符串看起来是正确的。如果我 var_dump($response) 我得到 bool(false) 但如果 var_dump($token_url) 我得到整个字符串。我相信我在 file_get_contents 命令方面做得不对。有什么解决办法吗?谢谢 【参考方案1】:

可以通过

实现获取访问Token
// Get the current access token
$access_token = $facebook->getAccessToken();

//And now echo the access token 
echo $access_token;

【讨论】:

【参考方案2】:

嗯,它最终得到了排序。显然是服务器问题。我尝试在 2 个不同的服务器 + 本地(Easyphp 5.3.8.1)上开发应用程序。在第三台服务器上,我尝试过它现在可以工作(手指交叉)。老实说,我不知道为什么它现在可以工作,为什么我的本地服务器没有按应有的方式运行。好吧,它现在可以工作了:D

【讨论】:

以上是关于Facebook 身份验证教程缺失的部分的主要内容,如果未能解决你的问题,请参考以下文章

没有登录按钮的 Facebook 身份验证

Facebook 身份验证对话框仅部分本地化

Facebook 身份验证 iOS 使用 Storyboard

作为 iOS 上 FaceBook 身份验证的一部分登录我们的网站

Ionic Facebook 身份验证重定向问题

Facebook 聊天 - X-FACEBOOK-PLATFORM 身份验证