无法获得与 Facebook 应用程序的会话? (使用它的 Graph API)

Posted

技术标签:

【中文标题】无法获得与 Facebook 应用程序的会话? (使用它的 Graph API)【英文标题】:Cannot get a session with Facebook app? (using its Graph API) 【发布时间】:2010-05-08 20:26:48 【问题描述】:

我有几行非常简单的 Facebook 应用程序,使用新的 Facebook API:

<pre>

<?php

require 'facebook.php';

// Create our Application instance.
$facebook = new Facebook(array(
  'appId'  => '117676584930569',
  'secret' => '**********',                 // hidden here on the post...
  'cookie' => true,
));

var_dump($facebook);

?>

但它给了我以下输出:

http://apps.facebook.com/woolaladev/i2.php 会放弃

object(Facebook)#1 (6) 
  ["appId:protected"]=>
  string(15) "117676584930569"
  ["apiSecret:protected"]=>
  string(32) "**********"                   <--- just hidden on this post
  ["session:protected"]=>
  NULL                                      <--- Session is NULL for some reason
  ["sessionLoaded:protected"]=>
  bool(false)
  ["cookieSupport:protected"]=>
  bool(true)
  ["baseDomain:protected"]=>
  string(0) ""

由于某种原因,会话为 NULL,但我已登录,可以访问我的主页和个人资料,并在 Facebook 上运行其他应用程序(以查看我已登录)。

我正在关注以下示例:

http://github.com/facebook/php-sdk/blob/master/examples/example.phphttp://github.com/facebook/php-sdk/blob/master/src/facebook.php

(使用原始 URL 下载:wget http://github.com/facebook/php-sdk/raw/master/src/facebook.php)

在dreamhost.com 和netfirms.com 上尝试了两家托管公司,结果是一样的。

【问题讨论】:

遇到了完全相同的问题,正在寻找解决方案:/ [还没有运气] 【参考方案1】:

会话打开并不意味着您已登录 Facebook。

会话需要在相关网站中打开,这意味着您应该在您的网站中添加一个“与 facebook 连接”按钮并单击它!然后重新加载页面,你会得到你的会话:)

$session = $facebook->getSession();
$me = null;
if ($session) 
  try 
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
    $friends = $facebook->api('/me/friends'); //array of friends - for every friend you get id & name
   catch (FacebookApiException $e) 
    error_log($e);
  

【讨论】:

我只想获取朋友的列表,也许像旧 API 一样获取照片缩略图。那么这些会话不需要吗?谢谢。 需要。我将编辑我的代码以获取朋友的示例,但请记住,您必须实现登录按钮才能获得会话。 所有那些让你点击“允许(授权)”然后下次你去apps.facebook.com/someapp的应用程序,它只会启动应用程序并能够获取你的好友列表等,不需要我们点击登录按钮?【参考方案2】:
$session = $facebook->getSession(); 

当您使用新的图形 api 调用它时,它说该方法不存在。

致命错误:调用 /home/pri 中未定义的方法 Facebook::getSession()...

【讨论】:

以上是关于无法获得与 Facebook 应用程序的会话? (使用它的 Graph API)的主要内容,如果未能解决你的问题,请参考以下文章

无法打开会话或将帖子发布到 Facebook

为啥在ios中重新打开会话后无法访问facebook好友列表

Facebook iOS 上传视频“无法从访问令牌中检索会话密钥。”

会话中的spring security facebook错误

如何清除 Facebook App 对象的数据

Parse / Facebook -> 会话与当前存储的会话不匹配