【问题标题】:How to authenticate users on server using facebook on android app如何在 android 应用程序上使用 facebook 对服务器上的用户进行身份验证
【发布时间】:2016-10-29 18:37:46
【问题描述】:

我正在构建一个适用于服务器的 Android 应用。服务器需要完成所有工作。我想让我的用户创建帐户并使用 facebook 进行连接。

我不知道我需要在数据库中保留哪些关于用户的信息,以便在他更换手机、重新安装应用程序或任何会修改他的 Facebook 令牌的情况下对他进行身份验证。

我不知道我是否足够清楚我对 facebook auth 有点困惑:/

【问题讨论】:

  • 如果用户更换设备应该没有问题。但是您可以保存 facebook api 提供的用户 ID。

标签: java android facebook server


【解决方案1】:

这是获取 facebook 用户 ID 的方法:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(this);
    setContentView(R.layout.activity_main);


    callbackManager = CallbackManager.Factory.create();

    login = (LoginButton) findViewById(R.id.btn_login);
    login.setReadPermissions("email", "public_profile");
    login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                @Override
                public void onCompleted(JSONObject object, GraphResponse response) {

                    String id = object.getString("id");
                    // some database stuff here
                    // ...
                }
            });
            request.executeAsync();
        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException error) {
            Log.d("ERROR", error.toString());
            Toast.makeText(MainActivity.this, "Couldn't login, pleasy try again!", Toast.LENGTH_SHORT).show();
        }
    });

}

【讨论】:

  • 非常感谢,只是不知道 facebook 可以提供的 ID,也感谢代码 :) 你把它放在 onCreate() 中,这只有在我按下按钮时才有效?
  • 按钮是由 Facebook-Api 提供的LoginButton
猜你喜欢
  • 1970-01-01
  • 2011-12-07
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 2014-06-17
相关资源
最近更新 更多