[英]facebook app code is failing getUser returns NULL
I am trying to learn facebook app development and here s the code I am trying. 我正在尝试学习Facebook应用程序开发,这是我正在尝试的代码。
<?php
require_once 'config.php';
/* Get a valid session */
$session = $facebook->getUser();
$me = null;
if($session) {
/* Check if session is valid */
$me = $facebook->api('/me');
}
var_dump($me);
?>
I have set my app id and secret in config.php but it is failing to execute getUser(), all it returns is null. 我已经在config.php中设置了我的应用程序ID和密码,但是它无法执行getUser(),它返回的所有内容都是null。
Check it here. 在这里检查。
http://facebookdevelop.byethost8.com/index.php http://facebookdevelop.byethost8.com/index.php
Do I need special setup to be done except copying facebook php sdk in hosting site? 除了在托管站点中复制facebook php sdk之外,我是否需要进行特殊设置? Is there a place where up-to date information is available which clearly defines step by step instructions? 是否有地方提供最新信息,可以清楚地定义逐步说明?
You cannot just get the User ID without a user login/authorization. 没有用户登录/授权,您不能仅获取用户ID。
See here: https://developers.facebook.com/docs/reference/php/ 看到这里: https : //developers.facebook.com/docs/reference/php/
The Facebook docs are not as bad as so many people think. Facebook文档并不像很多人想象的那样糟糕。 Another basic tutorial: 另一个基本教程:
https://github.com/facebook/facebook-php-sdk https://github.com/facebook/facebook-php-sdk
see "getLoginUrl". 请参阅“ getLoginUrl”。 Grab the newest php sdk and use the code from "Usage" on the git page. 抓住最新的PHP SDK,并使用git页面上“用法”中的代码。 "getUser" does not return a session, it returns a user id (or nothing/zero if the user is not logged in). “ getUser”不返回会话,它返回用户标识(如果用户未登录,则返回零/零)。
This code works 此代码有效
<?php
/**
* This sample app is provided to kickstart your experience using Facebook's
* resources for developers. This sample app provides examples of several
* key concepts, including authentication, the Graph API, and FQL (Facebook
* Query Language). Please visit the docs at 'developers.facebook.com/docs'
* to learn more about the resources available to you
*/
// Provides access to app specific values such as your app id and app secret.
// Defined in 'AppInfo.php'
require_once('AppInfo.php');
// Enforce https on production
if (substr(AppInfo::getUrl(), 0, 8) != 'https://' && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') {
header('Location: https://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
exit();
}
// This provides access to helper functions defined in 'utils.php'
require_once('utils.php');
/*****************************************************************************
*
* The content below provides examples of how to fetch Facebook data using the
* Graph API and FQL. It uses the helper functions defined in 'utils.php' to
* do so. You should change this section so that it prepares all of the
* information that you want to display to the user.
*
****************************************************************************/
require_once('sdk/src/facebook.php');
$facebook = new Facebook(array(
'appId' => AppInfo::appID(),
'secret' => AppInfo::appSecret(),
'sharedSession' => true,
'trustForwarded' => true,
));
$user_id = $facebook->getUser();
if ($user_id) {
try {
// Fetch the viewer's basic information
$basic = $facebook->api('/me');
} catch (FacebookApiException $e) {
// If the call fails we check if we still have a user. The user will be
// cleared if the error is because of an invalid accesstoken
if (!$facebook->getUser()) {
header('Location: '. AppInfo::getUrl($_SERVER['REQUEST_URI']));
exit();
}
}
// This fetches some things that you like . 'limit=*" only returns * values.
// To see the format of the data you are retrieving, use the "Graph API
// Explorer" which is at https://developers.facebook.com/tools/explorer/
$likes = idx($facebook->api('/me/likes?limit=4'), 'data', array());
// This fetches 4 of your friends.
$friends = idx($facebook->api('/me/friends?limit=4'), 'data', array());
// And this returns 16 of your photos.
$photos = idx($facebook->api('/me/photos?limit=16'), 'data', array());
// Here is an example of a FQL call that fetches all of your friends that are
// using this app
$app_using_friends = $facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT uid, name FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = me()) AND is_app_user = 1'
));
}
var_dump ($user_id);
?>
Only need to figure out the difference. 只需要找出区别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.