我已经阅读过有关facebook opengraph连接的内容 - 据我所知,登录程序分3步进行:
从facebook api调用中获取登录URL以创建自定义登录按钮 点击链接后,我们将被重定向到facebook登录页面
进行实际登录并重定向到我们在app facebook开发者页面中定义的网站
在此页面中,我们必须处理实际结果。问题出在这里:我明白我们必须使用令牌并向fb页面发出新请求以验证令牌(见下文)。
在此之后,我假设我们得到了用户的实际细节,但我从未设法执行此令牌请求,因此我不确定如何继续。
$ch = curl_init("http://graph.facebook.com/oauth/access_token? client_id=".$facebook_config['appId']."
&client_secret=".$facebook_config['secret']."
&redirect_uri=".urlencode(SITE_DOMAIN)."/facebook_login_processor.php
&code=".$_GET['code']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 30000);
$data = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
curl_close($ch);
if ($curl_errno > 0)
{
echo "cURL Error ($curl_errno): $curl_error\n";
}
else
{
echo $data;
}
我收到关于redirect_uri
的错误 - 不知怎的,它没有得到验证。
{"error":{"message":"Missing redirect_uri parameter.","type":"OAuthException","code":191}}
请记住,我在非公共网站上尝试此操作(域只在服务器和我的主机文件中注册)。这会产生问题吗?
感谢您的帮助,感谢您的关注和帮助
里卡多
Ps:抱歉有任何错误 - 我正在打电话
答案 0 :(得分:1)
基于facebook php sdk,下面的脚本在我的网站上运行良好。
<?php require_once "lib/facebook.php"; $scope = "create_note,email friends_groups,friends_interests"; $redirecturl = "https://www.mysite.com/callback.php"; $facebook = new Facebook(array('appId' => APP_ID,'secret' => APP_SECRET)); $authurl = $facebook->getLoginUrl( array( 'scope' => $scope, 'redirect_uri' => $redirecturl ); header("Location:$authurl"); ?>
然后在callback.php
<?php require_once "lib/facebook.php"; $facebook = new Facebook(array('appId' => APP_ID,'secret' => APP_SECRET)); $user = $facebook->getUser(); if ($user) { try { $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { error_log($e); $user = null; } if (!empty($user_profile)) { print_r($user_profile); // or do something here } } ?>
注意:您应该定义APP_ID和APP_SECRET。