【问题标题】:PHP Facebook FQL for query a public Note用于查询公共注释的 PHP Facebook FQL
【发布时间】:2012-10-29 17:56:28
【问题描述】:

我创建了一个没有特殊权限的应用。使用这个应用程序,我可以查询 Facebook 事件以显示在我的网站上。一切正常。

我现在想通过显示我的粉丝页面的 Facebook 笔记来扩展网站。当我尝试实现它时,我收到错误消息:

“需要用户会话”

在 FQL-Note API 参考中,他们说“任何有效的 access_token,如果它是由页面编写的公共笔记。”我想我有一个有效的公共令牌。

require '../src/fb-sdk/src/facebook.php';

$facebooknotes = new Facebook(array(
    'appId'  => 'xxxxxxxxxxxxxxx',
    'secret' => 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy',
    'cookie' => false, // enable optional cookie support
));

$fql_notes = "SELECT uid, note_id, title, content, content_html, created_time, updated_time FROM note WHERE uid = 149018831796518";

$param  =   array(
'method'    => 'fql.query',
'query'     => $fql_notes,
'callback'  => ''
);

$fql_notesResult   =   $facebooknotes->api($param);

foreach($fql_notesResult as $keys => $fbnotevalues){ echo "<h2>" . $fbnotevalues['title'] . "</h2>" . $fbnotevalues['content_html']; }

有人可以帮忙吗?

问候,

边缘拍摄

【问题讨论】:

    标签: php facebook-like facebook-php-sdk facebook-fql


    【解决方案1】:

    FQL 似乎无法获取页面的注释。 uid 字段正在寻找用户 ID。我的猜测是,如果您获得了适当的访问令牌,您仍然会遇到错误,因为您的 ID 不属于某个页面。

    要获取页面的注释,您需要使用图形 API:

    $fql_notesResult   =   $facebooknotes->api('/149018831796518/notes', 'GET');
    foreach($fql_notesResult as $keys => $fbnotevalues){ 
      echo "<h2>" . $fbnotevalues['subject'] . "</h2>" . $fbnotevalues['message']; 
    }
    

    【讨论】:

    • 感谢您的回答。当我尝试使用 Graph API 时,我仍然收到一条错误消息:“致命错误:未捕获的 OAuthException:请求此资源需要用户访问令牌”。从 facebook 文档中,我认为查询此信息不需要“用户访问令牌”。
    • 我做了更多的研究。这是一个已知的错误。我已经提出了反对它。你也应该。当然,它自 2012 年 2 月 13 日以来就已为人所知,因此我将通过存储您的一个访问令牌以用于进行此查询来解决它。 developers.facebook.com/bugs/354464304626449
    • 感谢您的研究。我现在发布了我的复制品。
    猜你喜欢
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多