0

我想创建一个使用 Facebook 对用户进行身份验证的 Android 应用程序,然后将访问令牌传递给我们的 Web 应用程序服务器。

该应用程序只有在用户通过身份验证后才能运行。所以当它开始时,我需要打开一个 Facebook 会话,然后使用访问令牌并联系我们自己的服务器以获取更多信息。然后,相同的 Facebook 会话将用于各种应用程序活动。

我无法决定如何处理 Facebook 会话。我是否按照此处所述在第一个活动中放置一个登录按钮?当会话状态发生变化时,我在其他活动中做什么?我不想在每个活动中添加 Facebook 登录...

或者,我可以使用自己的按钮,如 SDK 的登录示例所示。但是,当我在另一项活动中关闭会话时,我会遇到同样的管理问题。

或者我可以将所有内容放在同一个活动中并使用不同的片段。

最佳实践方法是什么?

注意:关于此事的大多数 SO 问题都与较旧的 SDK 相关(使用现已弃用的Facebook类)。

4

2 回答 2

1

最简单的方法肯定是使用单个 Activity 来处理所有会话状态更改,并使用它来驱动 UI 更改。无论如何,Android 都在推动 Fragment 模型,所以我认为这是你最好的选择。

或者,如果您需要使用不同的活动,您始终可以使用一个通用的 Session.StatusCallback 实现,该实现具有对当前活动的引用。然后,如果状态更改驱动 UI 更改,您可以创建启动新活动的意图。

于 2013-02-19T18:09:15.427 回答
0

你可以像这样获得你的 facebook 会话

Session session = Session.getActiveSession();
    if (session == null) {
        if (savedInstanceState != null) {
            session = Session.restoreSession(getActivity(), null, statusCallback, savedInstanceState);
        }
        if (session == null) {
            session = new Session(getActivity());
        }
        Session.setActiveSession(session);
        if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
            session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
        }
    }
于 2013-02-19T08:36:17.390 回答