2012-11-16 92 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」不會返回一個會話,它會返回一個用戶標識(如果用戶沒有登錄,則返回一個零)。