在Android中使用Facebook SDK上网的好友列表 [英] get online friend list using facebook sdk in android

查看:156
本文介绍了在Android中使用Facebook SDK上网的好友列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图让使用Facebook的SDK我的应用程序的用户logedIn所有在线的朋友,
我做了一些R&放大器; d,但没有使用它。
虽然我要求所有相关的权限,但我的code不工作,请大家指正是我错了。

i am trying to get all online friends of logedIn user of my app using facebook sdk, i have done some R&D but no use of it. though i am asking all related permissions but my code doesnt work,please correct me were i am going wrong.

日志猫显示应用程序没有权限拨打此电话

log cat shows "App does not have permission to make this call"

下面是我的code
权限列表

below is my code permission list

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);
         }
    }

如何完成这件事,谢谢

how to get this done ,thank you

推荐答案

您需要在 user_status 权限读取用户的状态和 user_online_ presence 和/或 friends_online_ presence online_ presence权限。

You need the user_status permission to read the user's status and user_online_presence and/or friends_online_presence permissions for the online_presence.

这里是完整的权限列表。

随着这一点,需要一个FQL查询--- SELECT名,UID FROM用户WHERE IN('主动','空闲')和UID online_ presence IN(SELECT UID2从相知WHERE UID1 =我() )

Along with this it requires a FQL query--- SELECT name,uid FROM user WHERE online_presence IN ('active', 'idle') AND uid IN ( SELECT uid2 FROM friend WHERE uid1 = me())

这篇关于在Android中使用Facebook SDK上网的好友列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆