我真的需要一些帮助。
我在这里尝试Facebook PHP SDK $facebook->getSignedRequest() 获取用户 ID 和名称。(页面选项卡)创建一个与 facebook 页面链接的应用程序..到目前为止一切顺利..问题是我无法检索用户 ID,无论如何,使用 php-sdk..
我也试过这个修复,https://www.webniraj.com/2012/12/19/facebook-php-sdk-fixing-getuser-on-php-5-4-x/但它没有做任何区别
require 'php-sdk/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'myappid',
'secret' => 'mysecretid',
));
$theRequest = $facebook->getSignedRequest();
$user = $facebook->getUser();
var_dump($user);
无论我尝试了什么,我都无法检索用户 ID ..
我尝试了保罗建议的链接
使用以下代码
if ($_REQUEST) {
$signed_request = $_REQUEST['signed_request'];
} else {
echo '$_REQUEST is empty';
}
function parse_signed_request($signed_request) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
return $data;
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_', '+/'));
}
$data = parse_signed_request($signed_request);
var_dump($data);
我得到一个“NULL”作为响应..:S
第二次编辑..我得到了这个代码
$information=parse_signed_request($signed_request, $secret); $oauth_token=$信息["oauth_token"];
var_dump($信息); var_dump($oauth_token);
$app_id = "myappid";
$canvas_page = "https://apps.facebook.com/app_namespace";
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($canvas_page) . "&scope=read_stream, friends_likes";
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (empty($oauth_token)) {echo("<script> top.location.href='" . $auth_url . "'</script>");}
通过这种方式,我设法获得身份验证对话框,但在重定向中我收到一条错误配置应用程序的消息..如果我重新输入应用程序,然后我访问所有必要的信息..token 等.. 所以如果我找到解决方案为什么重定向我得到错误配置的应用程序,我想我解决了我的问题?