2009-11-20 85 views
0

我是新開發Facebook應用程序的新手。我遇到以下問題,如果有人能幫忙,我會很高興。在hello world facebook應用程序中require_once有問題

我已經在Facebook上註冊了我的應用程序,並將代碼和php客戶端庫上傳到託管服務器。如果我使用下面的代碼,那麼一切工作正常。

<?php 

require_once('./facebook/php/facebook.php'); 

/* initialize the facebook API with your application API Key 
    and Secret */ 
$facebook = new Facebook("<my_api_key>","<my_secret_key>"); 

$user = $facebook->require_login(); 

echo "<p>Your User ID is: $user</p>"; 

echo "<p>Your name is: <fb:name uid=\"$user\" useyou=\"false\"/></p>"; 

echo "<p>You have several friends: </p>"; 
$friends = $facebook->api_client->friends_get(); 
echo "<ul>"; 

foreach ($friends as $friend) { 
echo "<li><fb:name uid=\"$friend\" useyou=\"false\" /></li>"; 
} 
echo "</ul>"; 

/* Echo some information that will 
    help us see what's going on with the Facebook API: */ 
echo "<pre>Debug:" . print_r($facebook,true) . "</pre>"; 


?> 

但是,如果我把代碼分成兩個文件如下然後我就得到了一個空白的畫布,當我瀏覽到http://apps.facebook.com/myapp

appinclude.php

<?php 
require_once('./facebook/php/facebook.php'); 

/* initialize the facebook API with application API Key 
    and Secret */ 
$facebook = new Facebook("<my_api_key>","<my_secret_key>"); 

$user = $facebook->require_login(); 

?> 

指數。 php

<?php 

require_once('./appinclude.php'); 

echo "<p>Your User ID is: $user</p>"; 

echo "<p>Your name is: <fb:name uid=\"$user\" useyou=\"false\"/></p>"; 

echo "<p>You have several friends: </p>"; 
$friends = $facebook->api_client->friends_get(); 
echo "<ul>"; 

foreach ($friends as $friend) { 
echo "<li><fb:name uid=\"$friend\" useyou=\"false\" /></li>"; 
} 
echo "</ul>"; 

/* Echo some information that will 
    help us see what's going on with the Facebook API: */ 
echo "<pre>Debug:" . print_r($facebook,true) . "</pre>"; 

?> 

有什麼辦法解決這個問題?

謝謝。

+0

@MikeTJ,也許樹的輸出會照亮我們。 – Don

回答

0

我會檢查文件路徑。

看起來在你的第二個(非工作版本)你試圖從一個名爲'facebook/php /'的目錄中包含一個文件。

如果這是您指定爲應用程序根目錄的目錄,那麼我猜想Facebook不會允許您在該目錄級別下包含文件。

1

我設置我的應用程序的方式是將所有文件放在同一目錄中,以免混淆。

/Myapp/index.php

<?php 
require_once('appinclude.php'); 
?> 

/Myapp/appinclude.php

<?php 
require_once('facebook.php'); 
?> 

的MYAPP目錄如下:

/MYAPP/jsonwrapper/JSON/JSON。 php
/Myapp/jsonwrapper/JSON/LICENSE
/Myapp/jsonwrapper/jsonwrapper.php
/MYAPP/jsonwrapper/jsonwrapper _ inner.php
/Myapp/facebook.php
/MYAPP/facebookapi _ PHP5 _ restlib.php
/Myapp/appinclude.php
/Myapp/index.php

在你的第二個例子中的佈局將需要這樣的工作:

/facebook/php/facebook.php
/Myapp/AnotherDirectory/index.php
/Myapp/appinclude.php

注意appinclude.php和index.php不在同一個文件夾中。 index.php在它自己上面的目錄中查找appinclude.php文件,以及appinclude。php在其上面的目錄中查找文件facebook/php/facebook.php。如果您要從require語句的前面刪除點和斜槓,它會在同一個目錄中查找它。基本上你需要認識到的是,在require_once('./appinclude.php');中的./表示看起來在這個上面的目錄中。