如何在Android中使用Facebook功能实现登录?

时间:2013-08-09 08:48:29

标签: android facebook api

我正在开发Android应用程序。这里有两个登录选项。我想知道如何实现允许用户使用Facebook登录的功能。这将有两个按钮:一个用于简单登录,另一个用于登录。当用户点击“使用Facebook登录”时,它应首次询问Facebook用户名和密码,有时应自动使用Facebook凭据登录。

4 个答案:

答案 0 :(得分:1)

直接在Facebook开发者网站上查看。 https://developers.facebook.com/android/

下载最新的sdk。 注册自己为Facebook开发者 在Android应用中创建应用ID并使用该应用ID。 有关更多详细信息,请参阅facebook集成示例:您可以在sdk管理器中看到示例代码,您可以从devloper站点下载。

答案 1 :(得分:0)

转到以下链接下载facebook sdk,它还包含facebook的样本。

https://github.com/facebook/facebook-android-sdk

答案 2 :(得分:0)

查看示例

http://www.androidhive.info/2012/03/android-facebook-connect-tutorial/

你需要facebook sdk来访问登录,所以,从下面链接你可以获得sdk

https://github.com/facebook/facebook-android-sdk

答案 3 :(得分:0)

单击按钮将打开facebook身份验证对话框,然后根据权限返回用户信息,如id,name,email。 (确保你已经在android studio中设置了库,并在string.xml中添加了facebook id。)

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    login=(Button)findViewById(R.id.login);

    FacebookSdk.sdkInitialize(getApplicationContext());
    callbackManager = CallbackManager.Factory.create();

    LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    // App code

                    GraphRequest request = GraphRequest.newMeRequest(
                            loginResult.getAccessToken(),
                            new GraphRequest.GraphJSONObjectCallback() {
                                @Override
                                public void onCompleted(
                                        JSONObject object,
                                        GraphResponse response) {
                                    // Application code
                                    Toast.makeText(LoginActivity.this,object.toString(),Toast.LENGTH_SHORT
                                    ).show();
                                }
                            });
                    Bundle parameters = new Bundle();
                    parameters.putString("fields", "id,name,email");
                    request.setParameters(parameters);
                    request.executeAsync();

                }

                @Override
                public void onCancel() {
                    // App code
                }

                @Override
                public void onError(FacebookException exception) {
                    // App code
                    Toast.makeText(LoginActivity.this,exception.getMessage().toString(),Toast.LENGTH_SHORT
                    ).show();
                }
            });

    login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            LoginManager.getInstance().logInWithReadPermissions(LoginActivity.this, Arrays.asList("public_profile", "user_friends","email"));
        }
    });
}



protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}