2012-11-16 55 views
0

我想学习Facebook应用程序开发,这里是我想要的代码。Facebook的应用程序代码是失败的getUser返回NULL

<?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); 
?> 

我已经把我的应用程序ID和秘密在config.php但未能执行的getUser(),所有返回为空。

在此处查看。

http://facebookdevelop.byethost8.com/index.php

我是否需要特殊的设置除了在托管网站Facebook的抄袭PHP SDK做?有没有一个地方可以获得最新的信息,这些信息清楚地定义了一步一步的指示?

回答

0

此代码的工作

<?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); 
?> 

只需要弄清楚的差异。

3

你不能只获得没有用户登录/授权的用户ID。

在这里看到:https://developers.facebook.com/docs/reference/php/

Facebook的文档并不像很多人想象的那样糟糕。另一个基本教程:

https://github.com/facebook/facebook-php-sdk

看到 “getLoginUrl”。抓住最新的PHP SDK并使用git页面上的“用法”代码。 “getUser”不会返回一个会话,它会返回一个用户标识(如果用户没有登录,则返回一个零)。