0

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

4

4 回答 4

1

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

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

于 2013-08-09T09:44:19.223 回答
0

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

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

于 2013-08-09T08:50:31.427 回答
0

查看示例

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

并且您需要 facebook sdk 才能访问登录,因此,您可以从下面的链接获取 sdk

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

于 2013-08-09T09:15:22.403 回答
0

当您单击按钮时,将打开 facebook 身份验证对话框,然后根据许可返回用户信息,例如 ID、姓名、电子邮件。(确保您已经在 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);
}
于 2016-10-18T13:47:17.563 回答