【问题标题】:Facebook->getSession()Facebook->getSession()
【发布时间】:2012-10-17 18:55:47
【问题描述】:

我有 2 个非常简单的脚本:

<?php

require_once 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxx',
'secret' => 'yyyyyyyyyyyyyyyyyyyy',
'cookie' => true,
));
?>

<?php
require_once 'config.php';
/* Get a valid session */
$session = $facebook->getSession();
$me = null;
if($session) {
/* Check if session is valid */
$me = $facebook->api('/me');
}
if ($me) {
echo 'User is logged in and has a valid session';
}
else {
echo 'Session expired or user has not logged in yet. 
Redirecting...';
echo '<script> top.location.href="'.$facebook->getLoginUrl()
  .'";</script>';
}
?>

为什么我会收到致命错误:在第 4 行的 C:\wamp\www\jt1\index.php 中调用未定义的方法 Facebook::getSession()

【问题讨论】:

  • 您确定 Facebook API 的文件在同一个目录中吗?您是否包含了正确的文件?
  • 你用的是什么php sdk版本?

标签: php facebook


【解决方案1】:

现代 facebook PHP SDKm 中没有 getSession() 方法,而是使用 getUser()

https://github.com/facebook/php-sdk/blob/master/examples/example.php查看示例

【讨论】:

  • 我正在关注 Packt 2011 书。糟透了是吗? :(
【解决方案2】:

$facebook 变量对您的第二个脚本不可见。为了证明这一点,将定义 $facebook 的第一个脚本中的逻辑移到第二个脚本中。这一切都应该开始工作。

【讨论】:

  • 也许两个脚本都在一个文件中 - @Jason:是吗?
  • @Alex Weinstein:错了,如果它不可见,我们会看到关于调用非对象方法的错误(因为它会是null
  • 对,第一个脚本是“config.php”。
【解决方案3】:

我认为传输数组变量获取实例时有问题!

$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxx',
'secret' => 'yyyyyyyyyyyyyyyyyyyy',
***'cookie' => true,***
));

最后不应该有逗号。你可以使用“'cookie' => true”

【讨论】:

  • 错了,是有效 php语法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 2011-09-07
  • 2014-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多