0

我正在运行此代码,并收到以下消息:

“致命错误:在非对象中调用成员函数 api()”

它所指的那一行是我写的那一行global $facebook。facebook 对象在一个 config.php 文件中初始化,该文件包含在我的 Database.php 文件中,我已链接到该文件中。我已经研究过这个问题,它似乎是在你$facebook在函数之外声明并使用它时出现的内部而不使它成为全球性的。如您所见,我已将其设为全局,我什至尝试在不使其全局的情况下进行操作 - 两者都会导致该错误。

有谁知道为什么?

ps 我什至不明白为什么它需要是全局的,因为如果 config.php 包含在我的 Database.php 文件中,并且包含在下面的代码中,那么 $facebook 对象不在此代码的范围内?

<?php
    include_once('../../Database.php');


    session_start();    // Start session for safety

    // Retrieve the user's current shortlist of potential flatmates
    $uid = $_SESSION['uid'];
    $shortlistRes = getShortlist($uid);

    global $link;
    $shortlist = null;
    while($r = mysqli_fetch_array($shortlistRes)) {
        $shortlist[] = $r;
    }
    var_dump($shortlist);
    // Create array of parameters you need
    $parameters = array("pic_square");


    // Get id and picture of everyone on shortlist

        $shortlistString = implode(",",$shortlist);
        $fql = "SELECT uid, pic_link FROM user WHERE uid IN ($shortlistString)";
        global $facebook;
        $shortlistFBInfo = $facebook->api(array(
            'method' => 'fql.query',
            'query' => $fql
        ));
        print_r($shortlistFBInfo);






    // Display Shortlist Page
    //include_once('../View/shortlist_v.php');


    ?>
4

1 回答 1

0

您的代码中没有任何地方实际实例化$facebook变量 - 随 SDK 分发的示例代码是这样的:

 require_once("facebook.php");

  $config = array();
  $config[‘appId’] = 'YOUR_APP_ID';
  $config[‘secret’] = 'YOUR_APP_SECRET';
  $config[‘fileUpload’] = false; // optional

  $facebook = new Facebook($config);
于 2012-09-05T22:27:20.077 回答