簡體   English   中英

在Android中使用facebook sdk獲取在線朋友列表

[英]get online friend list using facebook sdk in android

我正在嘗試使用facebook sdk獲取我的應用程序的登錄用戶的所有在線朋友,我已經進行了一些研發,但沒有使用它。 雖然我正在詢問所有相關權限,但我的代碼無法正常工作,請糾正我是否出錯。

日志貓顯示“應用程序無權撥打此電話”

以下是我的代碼權限列表

private static final List<String> PERMISSIONS = Arrays
            .asList("publish_actions" ,"user_likes","friends_likes","manage_pages","publish_stream","user_status", "user_online_presence", "friends_online_presence");

public void getOnlineFreindList() {
        Log.i("inside", "requestfriend()");
        Session session = Session.getActiveSession();
         if (session != null)
         {
          List<String> permissions = session.getPermissions(); 
          if (!isSubsetOf(PERMISSIONS, permissions))
          { pendingPublishReauthorization = true; 
            Session.NewPermissionsRequest   newPermissionsRequest = new Session .NewPermissionsRequest(this,PERMISSIONS);
            session.requestNewPublishPermissions(newPermissionsRequest);
            return;
          }

        String fqlQuery = "SELECT name,uid FROM user WHERE online_presence IN ('active', 'idle') AND uid IN ( SELECT uid2 FROM friend WHERE uid1  ="+"100006508492702"+")";

        Bundle params = new Bundle();
        params.putString("q", fqlQuery);
        //Session session = Session.getActiveSession();
        Request request = new Request(session, "/fql", params, HttpMethod.GET,
                new Request.Callback() {
                    public void onCompleted(Response response) {
                        Log.i(TAG,
                                "Online Friend Result: " + response.toString());
                        Toast.makeText(Facebook.this, response.toString(),
                                Toast.LENGTH_LONG).show();
                    }
                });
        Request.executeBatchAsync(request);

        // init();
        // requestMyAppFacebookFriends(session);
         }
    }

如何做到這一點,謝謝

您可以使用以下查詢來獲取在線和空閑用戶的列表。

String fqlQuery = "SELECT uid, name, pic_square, online_presence FROM user " +
                  "WHERE online_presence IN ('active', 'idle') " +
                  "AND uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 
                   ORDER BY name";

更新

請添加friends_online_presenceuser_online_presence權限

您需要user_status權限才能讀取用戶的狀態,並需要user_online_presence和/或online_presence的 friends_online_presence權限

是完整的權限列表。

與此同時,它還需要一個FQL查詢---選擇名稱,來自用戶WHERE online_presence IN('active','idle')的uid和uid IN(來自朋友的SELECT uid2 WHERE uid1 = me())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM