我是开发Facebook应用程序的新手。我有以下问题,如果有人可以提供帮助,我会很高兴。
我在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();
?>
的index.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 :(得分: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语句的前面删除点和斜线,它将在同一目录中查找所有内容。基本上你需要意识到的是。{in require_once('./appinclude.php');
中的./表示在这个目录之上。
答案 1 :(得分:0)
我会检查文件路径。
在您的第二个(非工作版本)中,您试图在名为“facebook / php /”的目录中包含一个文件。
如果这是您指定为应用程序根目录的目录,那么我猜Facebook不会允许您在该目录级别下包含文件。