Android Facebook SDK 并在我的服务器上进行身份验证

Android Facebook SDK and authenticating on my server

我正在尝试使用 Facebook 在我的应用程序上设置登录。目前我的 SDK 工作正常,它进行身份验证,我可以访问用户信息,然后我开始对我的 activity 发送 Intent。 (不确定这是不是我应该做的)

现在我想知道使用我的 RestAPI 进行身份验证的工作流程是什么。

我可以 post 将 facebook_id 添加到我的服务器并添加到我的用户数据库,但随后我读到我应该使用 AccessToken,但我如何知道这是否是正确的 AccessToken对于那个用户?

这里的流程应该是什么?我应该在哪里 posting 到服务器,我应该 posting 每个 Activity 中的每个请求?

这是我目前拥有的代码。

private Session.StatusCallback statusCallback = new Session.StatusCallback() {
    @Override
    public void call(final Session session, SessionState sessionState, Exception e) {
        if (sessionState.isOpened()) {
            Request.newMeRequest(session, new Request.GraphUserCallback() {
                @Override
                public void onCompleted(GraphUser graphUser, Response response) {
                    if (graphUser != null) {
                        Log.w(TAG, graphUser.getFirstName() + ' ' + graphUser.getId());
                        Log.w(TAG, session.getAccessToken() + ' ' + session.getExpirationDate());
                        Intent intent = new Intent(LoginActivityFragment.this, MainActivity.class);
                        startActivity(intent);
                    }
                }
            }).executeAsync();
        } else if (sessionState.isClosed()) {

        }
    }
};

您应该使用用户 ID 作为唯一标识符。访问令牌在许多情况下(更新权限、用户日志 in/out 等)可能会发生变化,并且不应用于识别某人。用户 ID 将在您的应用中保持稳定。

您可以将访问令牌连同 ID 一起发送到您的服务器,也许是为了从服务器端发出一些 FB 请求,但这是一个单独的问题。