2010-05-28 100 views
2

我正在嘗試爲具有特定搜索項的組發出Facebook Graphp API搜索調用。 重要的事實是搜索組,不僅從該詞開始,而且還搜索組搜索組中的詞。所以這樣的事情。Facebook Graph API搜索未登錄用戶

FQL => SELECT * FROM基團,其中組名LIKE '%術語%'

據我所知,這是不可能在FQL。因此我必須使用Graph API搜索。

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

但我必須發出即使用戶沒有登錄第通話。這可能是 或者是否有可能在沒有用戶交互(不顯示錶單)的情況下使用一些curl調用登錄默認用戶?

如果有一個簡單的解決方案(例如使用FQL),請告訴我。

回答

2

我使用圖形API而不是使用FQL,所以我不能100%確定差異等等等等。但是我嘗試的方法是使用cURL腳本http://developers.facebook.com/docs/authentication/#authenticating-users-in-a-web-application來獲得auth令牌,那麼您必須將接收到的auth令牌添加到圖形參數中,就像您在網站上看到的那樣(在圖中測試api的一個好方法是單擊登錄到Facebook後給出的示例贊或查詢,然後複製api代碼和打破這樣的過程[測試你可以從查詢中得到你想要的結果,測試你可以得到你的認證令牌然後結合],以便你知道哪些部分是'問題'部分)。

如果失敗,請向下滾動到「使用java腳本進行單點登錄」並查看他們用於從facebook cookie獲取身份驗證令牌的代碼,我注意到您可能能夠訪問來自FQL的cookie。

我希望這有些幫助!請告訴我,如果這些想法不起作用。

Jon

1

使用PHP-SDK 3.1.1,不需要auth或access_token。 此示例假設您已在頁面上安裝了PHP-SDK。

  1. 使用形式發佈問題頁面,論據GET和POST 都包括在內。這將從搜索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單擊底部獲取插件和使用搜索框在行動中看到此示例。