2011-10-12 61 views
0

我想藏漢獲取好友列表像profile_pic,用戶名等一些領域,對於正在使用Facebook的FQL查詢的Android

SELECT name,relationship_status,current_location 
     FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 

其返回,<fql_query_response list="true"/>

沒有好友列表即將到來。

Edit: `"https://api.facebook.com/method/fql.query?&access_token="+accesstoken+"&query=SELECT name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1="+id+")";` 

,並傳遞一個這種方法:

public String request(String fql) throws FileNotFoundException, MalformedURLException, IOException { 
      Bundle parameters = new Bundle(); 
      parameters.putString("format", "json"); 
      parameters.putString("query", fql); 
      parameters.putString("access_token",facebookClient.getAccessToken()); 

      if (facebookClient.isSessionValid()) { 
       parameters.putString("access_token",facebookClient.getAccessToken()); 
      } 
        String url = (fql != null) ? "https://api.facebook.com/method/fql.query" : "https://api.facebook.com/restserver.php"; 
      return Util.openUrl(url, "GET", parameters); 
      } 

但其返回400錯誤的請求?但是當我在瀏覽器中運行這個URL時,它的工作正常

什麼在做錯?任何人都可以給我一段代碼來執行這個查詢嗎?

感謝

+0

查詢就可以了。檢查你使用的是什麼訪問令牌 –

+0

通過getusertoken方法獲取來自onComplete方法的令牌 – Udaykiran

+0

現在,當我進入瀏覽器但它不在我的查詢中執行時,它正在得到響應它返回的錯誤請求請我編輯的代碼請求.. \ – Udaykiran

回答

2

我得到了它atlaasst的事情是,我們必須在執行查詢之前的FQL查詢編碼。

使用此:

public String request(String fql) throws FileNotFoundException, MalformedURLException, IOException { 
      Bundle parameters = new Bundle(); 

      if (facebookClient.isSessionValid()) { 
       //parameters.putString("access_token",facebookClient.getAccessToken()); 
      } 
        String url = (fql != null) ? "https://api.facebook.com/method/fql.query?&access_token="+accesstoken+"&query="+URLEncoder.encode(fql) : "https://api.facebook.com/restserver.php"; 

        System.out.println("url imple"+url); 
        return Util.openUrl(url, "GET", parameters); 
      }