我需要获取基本的用户数据,例如姓名、电子邮件地址、个人资料图片、出生日期等。我想通过在我的 android 应用程序中通过 Facebook 为用户提供登录而不是要求他们手动输入来从 Facebook 获取这些数据。
为此,我想使用 android-simple-facebook https://github.com/sromku/android-simple-facebook。
请有人给我一个关于如何做的逐步说明。他们 github 帐户上的自述文件太模糊,无法清楚地理解每一步。
我需要获取基本的用户数据,例如姓名、电子邮件地址、个人资料图片、出生日期等。我想通过在我的 android 应用程序中通过 Facebook 为用户提供登录而不是要求他们手动输入来从 Facebook 获取这些数据。
为此,我想使用 android-simple-facebook https://github.com/sromku/android-simple-facebook。
请有人给我一个关于如何做的逐步说明。他们 github 帐户上的自述文件太模糊,无法清楚地理解每一步。
我在 Simple Facebook 中也遇到了同样的问题。所以我只是创建了一个 Helper 类,并在我想登录的地方使用它的方法 setLogin。
public class FacebookHelper {
public OnLoginListener onLoginListener = null;
Button btnFacebook;
ProgressDialog mProgressDialog;
Context mContext;
public FacebookHelper(Context mContext) {
this.mContext = mContext;
}
public void setLogin() {
// Login listener
onLoginListener = new OnLoginListener() {
@Override
public void onThinking() {
// TODO Auto-generated method stub
}
@Override
public void onException(Throwable throwable) {
// TODO Auto-generated method stub
Toast.makeText(mContext, throwable + "", Toast.LENGTH_SHORT)
.show();
}
@Override
public void onFail(String reason) {
Toast.makeText(mContext, reason + "", Toast.LENGTH_SHORT)
.show();
// TODO Auto-generated method stub
}
@Override
public void onLogin() {
// TODO Auto-generated method stub
publishPhoto();
}
@Override
public void onNotAcceptingPermissions(Type type) {
// TODO Auto-generated method stub
Toast.makeText(mContext, type + "", Toast.LENGTH_SHORT).show();
}
};
}
public void publishPhoto() {
// set privacy
Privacy privacy = new Privacy.Builder().setPrivacySettings(
PrivacySettings.ALL_FRIENDS).build();
Feed photo = new Feed.Builder()
.setName("Name")
.setDescription("Description")
.setPicture(
"http://www.bcre.com/images/laguna_beach_california_2592.jpg")
.setPrivacy(privacy).build();
SimpleFacebook.getInstance().publish(photo, true,
new OnPublishListener() {
@Override
public void onException(Throwable throwable) {
mProgressDialog.dismiss();
Toast.makeText(mContext, throwable.getMessage(),
Toast.LENGTH_LONG).show();
}
@Override
public void onFail(String reason) {
// mProgressDialog.dismiss();
Toast.makeText(mContext, reason, Toast.LENGTH_LONG)
.show();
}
@Override
public void onThinking() {
mProgressDialog = new ProgressDialog(mContext);
mProgressDialog.setTitle("Please Wait");
mProgressDialog.setMessage("UpLoading.....");
mProgressDialog.setCancelable(false);
mProgressDialog.show();
}
@Override
public void onComplete(String response) {
// mProgressDialog.dismiss();
// Toast.makeText(mOCParksContext, response,
// Toast.LENGTH_LONG).show();
}
});
}
}
然后调用它的方法只需单击即可。并在某些覆盖方法中启动对象
mFacebookHelper.setLogin();
mSimpleFacebook.login(mFacebookHelper.onLoginListener);
@Override
protected void onResume() {
super.onResume();
mSimpleFacebook = SimpleFacebook.getInstance(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mSimpleFacebook.onActivityResult(this, requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}