【问题标题】:Using facebook SDK for php for an FQL query?使用 facebook SDK for php 进行 FQL 查询?
【发布时间】:2012-08-15 00:11:50
【问题描述】:

我想知道如何使用 facebook sdk for php 使用以下 fql 查询从我的 facebook 收件箱中获取一条消息(或其他方式,如果可能的话)

https://graph.facebook.com//fql?q=SELECT+body+FROM+message+WHERE++mssage_id="XXXXXXXXXXXXXXXXXX_XXX"&access_token=...

(返回 JSON 结果)

https://api.facebook.com/method/fql.query?query=SELECT+body+FROM+message+WHERE+message_id="XXXXXXXXXXXXXXXXXX_XXX"&access_token=...

(返回一个 XML 结果)

这两种方法都需要一个访问令牌来获得 read_mailbox 权限。我需要的只是使用 php 获得结果。有什么帮助吗?

谢谢。

【问题讨论】:

    标签: facebook facebook-graph-api facebook-fql facebook-php-sdk


    【解决方案1】:

    最灵活的方法是使用 PHP SDK 的api 方法。 Facebook documentation site has examples of this

    如果您已经拥有访问令牌,则此代码会将您的数据放入 php 数组中:

    <?php
    $query = 'SELECT body FROM message WHERE message_id = "?????????????_??"';
    $token = '????';
    $result = json_decode( file_get_contents('https://graph.facebook.com/fql?q=' . 
        urlencode($query) . '&access_token=' . $token) );
    printf('<pre>%s</pre>', print_r($result, true) );
    

    是的,您需要一个访问令牌。如果您尝试读取随机用户的邮箱,则需要一个应用程序,并且您必须关注其中一个authentication workflows 才能让他们登录您的应用程序并授予您read_mailbox 权限。

    【讨论】:

    • 好吧,我正在尝试阅读我自己的收件箱,我拥有具有 read_mailbox 权限的正确访问令牌。只是 file_get_contents 函数以前从未在 facebook 上为我工作过,就像你给出的小代码示例一样。
    • 怎么不行?你至少应该得到一个错误。
    • 什么都不返回,空白!你可以试试
    • @cpilko,你为什么要先说“使用 PHP SDK 的 API 方法”,然后明确地不要在你的示例代码中使用它,但是 file_get_contents 呢? FQL 查询使用 Facebook::api() 可以很好地工作。
    • @CBroe:使用 Facebook::api() 的解决方案需要 OP 方面的更多先决条件,我不确定他是否准备好遵循。如果他准备好走这条路,我已经链接了文档。使用 OP 对已知 message_idaccess_token 的原始假设,file_get_contents 提供了一个最小的可行解决方案。我使用上面的代码发布了一个实时示例,以表明它确实有效(我已经删除了)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多