我正在进行涉及facebook整合的项目。
在http://developers.facebook.com/docs/guides/mobile之后,我能够将sdk集成到我的应用程序中,并且它运行得非常流畅。
它就像一个门户网站,我只需要输入我的facebook凭证,它将在我的应用程序屏幕中为我打开facebook内容。我们无法从这里操纵任何东西。
就像在询问Facebook凭据的yahoo.com上一样,将csv文件保存到具有所有朋友地址列表的桌面上。这意味着Facebook允许在正确认证后检索朋友的电子邮件。
我也尝试过FBRocket。它似乎没有工作......
如何以编程方式实现此目的。
答案 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不允许这样做