我正在尝试学习一些facebook的开发,因为人们似乎以某种方式要求facebook集成。
我正试图用PHP SDK让一些像我的名字这样简单的东西在屏幕上回响,但我似乎做不到
我的代码非常基本,正是所需要的
<?php
require_once('src/facebook.php');
$config = array(
'appId' => '14283923YYYYYYY48',
'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXX',
'allowSignedRequest' => false
);
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
?>
<html>
<head></head>
<body>
<?php
if($user_id) {
$user_profile = $facebook->api('/me','GET');
echo "Name: " . $user_profile['name'];
if (is_null($user_profile))
echo "NULL";
else echo "NOT NULL";
}
?>
</body>
</html>
名称没有显示,正如您所看到的,我测试了$user_profile变量,结果为NULL,所以我认为api函数不起作用,没有返回任何内容。
我的代码错了吗?还是我应该去别处寻找这个问题?任何解决问题的提示或建议都将非常有帮助。
您需要提供一个登录工具,让用户明确允许使用其用户ID,并创建一个访问令牌。这可以在PHP SDK或JavaScript SDK中完成(两者都可以实现双重功能)。
链接:
https://developers.facebook.com/docs/facebook-login/
**还请查看以下内容:Facebook PHP SDK/Graph API-返回我的姓名/信息,但不是其他人?
<?php
if($user_id) {
$user_profile = $facebook->api('/me','GET');
echo "Name: " . $user_profile['name'];
if (is_null($user_profile))
echo "NULL";
else echo "NOT NULL";
}
?>
更改上方的代码部分
$user_profile = $facebook->api('/me','GET');
至
$user profile = $facebook->api($user_id, 'GET')
然后你可以得到用户档案谁使用脸书登录你的网站
希望这对有帮助
如果您碰巧在codeigniter 3.x&部署在aws ELB中2018年,配置或fb应用程序设置中提到的facebook回调url是不够的,使用ssl,您需要手动编辑base_facebook.php
,并在函数getAccessTokenFromCode()
参数中将redirect_uri
从空白替换为https url
protected function getAccessTokenFromCode($code, $redirect_uri = 'https://www.example.com/index/fblogin') {
if (empty($code)) {
return false;
}
.....