0

我已经为此工作了 5 个小时,查找我知道的每一个 stackoverflow 和谷歌搜索项,但我无法解决这个问题。我想知道是否可以向你们寻求帮助。

我正在创建这个 Wordpress 小部件,它允许用户登录 facebook 收听我学校的校园广播。

我已经完成了通常的(我认为是正确的)步骤,如下所示:

    require_once('facebook.php');

    $facebook = new Facebook(array(
      'appId'  => 'my id',
      'secret' => 'my secret',
    ));

    // Get User ID
    $user = $facebook->getUser();

    if ($user) {
      $logoutUrl = $facebook->getLogoutUrl();
    } else {
      $loginUrl = $facebook->getLoginUrl();
    }

...以及后来的几行不重要的代码...

      window.fbAsyncInit = function() {
        FB.init({
          appId: '<?php echo $facebook->getAppID() ?>',
          cookie: true,
          xfbml: true,
          oauth: true
        });
        FB.Event.subscribe('auth.login', function(response) {
          window.location.reload();
        });
        FB.Event.subscribe('auth.logout', function(response) {
          window.location.reload();
        });
      };    

但是,我收到一条错误消息,提示“PHP 致命错误:在...中的非对象上调用成员函数 getAppID()”:

appId: '<?php echo $facebook->getAppID() ?>',

我尝试过其他行,例如

appId: '<?php echo $this->facebook->getAppID() ?>',

appId: '<?php echo $facebook::getAppID() ?>',

appId: '<?php echo $facebook->getAppID(); ?>',

所有这些都不起作用。另外,我不知道这是否是另一个错误,但我的

$loginUrl

$logoutUrl

都是空的...:\

我是一个 php 自学的初学者,这实际上是我正在从事的第一个 php 项目。如果这个问题在这个网站上不存在,我很确定它一定是我做错了,但问题是我不知道它是什么。

所以,是的,我决定把它发给你们。非常感谢您的帮助!:)

4

1 回答 1

0

该行所在的 javascript 代码可能超出对象的范围$facebook。尝试在 javascript 上方添加这一行:

global $facebook;
于 2012-06-03T13:56:47.623 回答