1

我需要获取基本的用户数据,例如姓名、电子邮件地址、个人资料图片、出生日期等。我想通过在我的 android 应用程序中通过 Facebook 为用户提供登录而不是要求他们手动输入来从 Facebook 获取这些数据。

为此,我想使用 android-simple-facebook https://github.com/sromku/android-simple-facebook

请有人给我一个关于如何做的逐步说明。他们 github 帐户上的自述文件太模糊,无法清楚地理解每一步。

4

1 回答 1

1

我在 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);

}
于 2014-08-21T20:38:15.430 回答