导出Facebook好友电子邮件地址Android

时间:2011-02-03 09:38:47

标签: android facebook

我正在进行涉及facebook整合的项目。

http://developers.facebook.com/docs/guides/mobile之后,我能够将sdk集成到我的应用程序中,并且它运行得非常流畅。

它就像一个门户网站,我只需要输入我的facebook凭证,它将在我的应用程序屏幕中为我打开facebook内容。我们无法从这里操纵任何东西。

我想要一种方式输入我的facebook凭据并检索我的所有朋友的电子邮件地址作为列表,我可以在我的应用程序中使用我想要的。就像在ListView中显示它们

就像在询问Facebook凭据的yahoo.com上一样,将csv文件保存到具有所有朋友地址列表的桌面上。这意味着Facebook允许在正确认证后检索朋友的电子邮件。

我也尝试过FBRocket。它似乎没有工作......

如何以编程方式实现此目的。

4 个答案:

答案 0 :(得分:4)

要访问facebook图表api,您需要使用他们的SDK。您可以从此处https://github.com/facebook/facebook-android-sdk下载。它们为您提供了一个对话框,供用户输入其用户和密码并获取oauth令牌。然后使用Facebook对象,您可以在图形路径API上请求任何内容。与他们给出的示例一样,您可以使用类似的内容来显示登录对话框。

package com.greatap;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import com.facebook.android.*;
import com.facebook.android.Facebook.*;

public class MyGreatActivity extends Activity {

    Facebook facebook = new Facebook("YOUR_APP_ID");

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        facebook.authorize(this, new DialogListener() {
            @Override
            public void onComplete(Bundle values) {}

            @Override
            public void onFacebookError(FacebookError error) {}

            @Override
            public void onError(DialogError e) {}

            @Override
            public void onCancel() {}
        });
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        facebook.authorizeCallback(requestCode, resultCode, data);
    }
}

您可以使用/ me / friends的图表路径访问您的好友列表。

facebook.request("me/friends");

这应该返回类似于以下内容的内容

    {
   "data": [
      {
         "name": "Fake",
         "id": "11111"
      },
      {
         "name": "Fake fakerson",
         "id": "111111"
      },
      {
         "name": "So Fake",
         "id": "111111111"
      }
    ]}

然后,您可以使用他们的ID和打开的图形API访问每个用户,以便在您看到它们时检索他们的电子邮件。

fakebook.request("/111111111");

这会返回一个包含朋友ID的json数组。然后,您可以循环浏览每个朋友并检索他们可以使用的信息。

答案 1 :(得分:2)

在任何情况下,Facebook都不允许访问电子邮件和电话。 facebook的以下链接已指定电子邮件为N / A [不适用]

http://developers.facebook.com/docs/reference/api/permissions/

答案 2 :(得分:1)

Brain,即使是fakebook.request(“/ 111111111”)也会给ID的朋友提供信息:“111111111”,但它总是不完整的.. 我已经尝试过自己,并发现在任何情况下,Graph API都没有给朋友发送电子邮件和手机号码(即使是公开共享)。 是您可以通过?field=email获取您的电子邮件ID 因此,为了获得每个朋友的联系,我们需要他们所有的密码和用户名,这是繁琐的或获得其他方法。

答案 3 :(得分:0)

答案到底是不可能的,因为Facebook不允许这样做