2

我正在尝试为具有特定搜索词的组发出 Facebook Graphp API 搜索调用。重要的事实是不仅要搜索以术语开头的组,还要搜索组名称中的术语。所以类似的东西。

FQL => SELECT * FROM groups WHERE groupname LIKE '%term%'

据我所知,这在 FQL 中是不可能的。因此我必须使用 Graph API 搜索。

http://developers.facebook.com/docs/api#search

但即使用户没有登录,我也必须发出呼叫。这是可能的,还是有可能在没有用户交互(不显示表单)的情况下通过一些 curl 调用登录默认用户?

如果有更简单的解决方案(例如使用 FQL),请告诉我。

4

2 回答 2

2

我使用图形 API 而不是 FQL,所以我不能 100% 确定差异等等……但是我尝试的一种方法是使用http://developers.facebook.com/上的 cURL 脚本docs/authentication/#authenticating-users-in-a-web-application来获取授权令牌,然后您必须将接收到的授权令牌添加到图形参数中,如您在网站上看到的那样(在图形中测试的好方法api是点击登录facebook时给出的示例喜欢或查询,然后复制api代码并分解这样的过程[测试你可以从查询中得到你想要的结果,测试你可以得到你的身份验证令牌然后结合] 以便您知道哪些部分是“问题”部分)。

如果失败,请向下滚动到“使用 java 脚本进行单点登录”并查看他们用于从 facebook cookie 获取身份验证令牌的代码,我注意到您可能能够从 FQL 访问该 cookie。

我希望这会有所帮助!如果这些想法不起作用,请告诉我。

乔恩

于 2011-01-05T17:59:21.380 回答
1

使用 PHP-SDK 3.1.1,不需要 auth 或 access_token。 此示例假定您在页面上安装了 PHP-SDK。

  1. 使用表单将问题发布到页面,包括获取和发布的参数。这将从搜索返回数组https://graph.facebook.com/search?q=facebook&type=group

<?php
    $q = urlencode($_GET['qs']);
        if(!$_GET['qs']){
        $q = urlencode($_POST['qs']);
            if(!$_POST['qs']){
        $q = "facebook";
        }
    }
    $MEsearch = $facebook->api('/search?q='.$q.'&type=group');
       foreach ($MEsearch as $key=>$value) {
       $i=1;
          foreach ($value as $fkey=>$fvalue) {
          $i++;
          if($fvalue[id]=="h"){
          }else{
            $groupname = $fvalue[name];
            $groupid = $fvalue[id];
            $groupversion = $fvalue[version];
               echo $groupname. '<br />';
               echo $groupid. '<br />';
               echo $groupversion. '<br /><hr />';
          }
       };
    };
?>

示例用法http://shawnsspace.com/plugins/photofeed.php 单击底部的 Get Plugin 并使用搜索框查看此示例的运行情况。

于 2011-08-26T06:17:00.853 回答