如何在Android中获取Facebook好友的生日、电子邮件和个人资料照片

3
如何使用Facebook SDK在Android中检索我的Facebook好友的姓名、出生日期、个人资料图片和电子邮件地址?是否可以使用Graph API或返回的JSON对象来帮助我解决这个问题?
我知道你会认为这个问题已经被问过了,但是相信我,你不可能从任何地方得到完全满意的答案。
但是我已经几乎浏览了所有相关问题和链接,还在Facebook SDK文档中搜索,但是我没有找到任何能够引导我成功的线索。
我已经尝试过获取JSON对象以及使用Graph API。
我知道使用这两种方法我们可以获取到朋友的出生日期和个人资料图片等信息。
但是它不允许我在这里上传我的代码,但我认为我的问题与从Facebook获得权限有关。
请尝试解决这个问题并为我提供一些使用Facebook SDK获取我的Facebook好友的生日日期、个人资料图片、电子邮件等信息的代码片段。
我卡在哪里了? 未被授权的权限,请参见下面的Logcat...
06-28 10:03:43.542: W/com.facebook.Session(3650): Should not pass a read permission (user_likes) to a request for publish or manage authorization

06-28 10:03:43.542: W/com.facebook.Session(3650): Should not pass a read permission (email) to a request for publish or manage authorization

06-28 10:03:43.542: W/com.facebook.Session(3650): Should not pass a read permission (user_birthday) to a request for publish or manage authorization

06-28 10:03:43.552: W/com.facebook.Session(3650): Should not pass a read permission (link) to a request for publish or manage authorization

06-28 10:03:43.552: W/com.facebook.Session(3650): Should not pass a read permission (friends_birthday) to a request for publish or manage authorization

06-28 10:03:43.552: W/com.facebook.Session(3650): Should not pass a read permission (friends_photos) to a request for publish or manage authorization

06-28 10:03:43.552: W/com.facebook.Session(3650): Should not pass a read permission (friends_about_me) to a request for publish or manage authorization

06-28 10:03:43.552: W/com.facebook.Session(3650): Should not pass a read permission (friends_link) to a request for publish or manage authorization

这将有助于解决我的问题......欢迎您提出所有建议。

我已经寻找解决方案几天了,请给我一些有用的想法。


请访问[这里][1]http://stackoverflow.com/questions/8454882/how-to-find-out-or-fetch-all-friend-list-of-facebook-with-their-profile-pic-name这会有所帮助。 - Suresh Sharma
谢谢你的回答,但我已经使用FQL解决了它。 - jignesh.world
2个回答

1

我已经在下面提供了我的解决方案,可能对其他人有帮助

使用您的权限授权Facebook

facebook.authorize(context, new String[] { "publish_stream",
                "friends_birthday" }, Facebook.FORCE_DIALOG_AUTH,
                new DialogListener() }

在onComplete方法中获取并存储访问令牌,然后在AsyncRunner中运行此FQL,您将获得JSON响应。
String query = "SELECT uid,name,username,birthday_date,pic_big FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) ";
        // String query = "SELECT name FROM user WHERE uid = me()";
        Bundle params = new Bundle();
        params.putString("method", "fql.query");
        params.putString("query", query);

        mAsyncRunner.request(params, new RequestListener()}

现在将其解析为json并在您的应用程序中使用。

如果您仍然有任何问题,请随时提问。


1

感谢@MasterScrat的即时回复... 我已经查看了那个链接,但对我没有任何有用的东西...我只想知道如何设置权限以获取所有这些内容... 你能帮我吗?来设置这个权限并从中获取一些返回对象。 - jignesh.world

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接