如何解决FB PHP认证
| 我在这里http://developers.facebook.com/docs/authentication/找到了此代码<?PHP
$app_id = \"YOUR_APP_ID\";
$app_secret = \"YOUR_APP_SECRET\";
$my_url = \"YOUR_URL\";
session_start();
$code = $_REQUEST[\"code\"];
if(empty($code)) {
$_SESSION[\'state\'] = md5(uniqid(rand(),TRUE)); //CSRF protection
$dialog_url = \"http://www.facebook.com/dialog/oauth?client_id=\"
. $app_id . \"&redirect_uri=\" . urlencode($my_url) . \"&state=\"
. $_SESSION[\'state\'];
echo(\"<script> top.location.href=\'\" . $dialog_url . \"\'</script>\");
}
if($_REQUEST[\'state\'] == $_SESSION[\'state\']) {
$token_url = \"https://graph.facebook.com/oauth/access_token?\"
. \"client_id=\" . $app_id . \"&redirect_uri=\" . urlencode($my_url)
. \"&client_secret=\" . $app_secret . \"&code=\" . $code;
$response = file_get_contents($token_url);
$params = null;
parse_str($response,$params);
$graph_url = \"https://graph.facebook.com/me?access_token=\"
. $params[‘access_token’];
$user = json_decode(file_get_contents($graph_url));
echo(\"Hello \" . $user->name);
}
else {
echo(\"The state does not match. You may be a victim of CSRF.\");
}
?>
我更改的是应用程序ID应用程序的秘密和URL,我创建了一个带有HTML语句的页面,并将其上传到Web服务器,但未找到错误页面。有人可以帮我吗?我还需要添加任何东西吗?
解决方法
您试图在代码中执行的操作是一种针对已存在内容的解决方法。请使用Facebook PHP SDK处理您目前正在尝试的操作。它使事情变得容易得多,而且您可能会在更短的时间内实现目标。
,您需要使用facebook SDK。
这是示例教程,效果很好,
http://www.9lessons.info/2011/01/facebook-graph-api-connect-with-php-and.html
我相信它将解决您的问题。
,您应该使用Facebook PHP SDK(请参阅github)。登录用户非常简单。这是这样的:
require \'facebook.php\';
$facebook = new Facebook(...);
$user = $facebook->getUser();
如果用户已登录,则“ 2”将包含其Facebook ID。但这并不意味着您具有进行API调用的有效访问令牌:如果他刚从Facebook注销,$user
将不会为null,但访问令牌将不再有效。
一种检查令牌是否有效的方法实际上是尝试进行API调用:
if ($user) {
// The user is logged in
try {
$facebook->api(\'/me\');
// Here : API call succeeded,you have a valid access token
} catch (FacebookApiException $e) {
// Here : API call failed,you don\'t have a valid access token
// you have to send him to $facebook->getLoginUrl()
$user = null;
}
} else {
// The user is not logged
// you have to send him to $facebook->getLoginUrl()
}
然后,登录用户或获取有效的访问令牌:
if (!$user) {
// display link to $facebook->getLoginUrl();
}
您可能想查看Facebook PHP SDK的示例以获取完整的流程,该文档已被很好地记录。
希望能有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。