0

我正在开发一个我想通过 facebook 登录的应用程序。我所做的是:

在启动屏幕之后,会出现一个登录屏幕,上面有用户名和密码编辑文本。在单击 Facebook 登录按钮输入凭据后,用户应在后台从 Facebook 进行身份验证。如果用户通过身份验证,那么他直接进行下一个活动,否则应该弹出 toast 消息。

我在.java中做了一些代码:

public class LoginScreenActivity extends Activity {
/** Global Variable Declaration. */
int nextMoveFlage = 0;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login_layout);
            // start Facebook Login
    Session.openActiveSession(this, true, new Session.StatusCallback() {
        // callback when session changes state
        @Override
        public void call(Session session, SessionState state,Exception exception) {
            if (session.isOpened()) {
                // make request to the /me API
                Request.executeMeRequestAsync(session,new Request.GraphUserCallback() {
                    // callback after Graph API response with user object
                    @Override
                    public void onCompleted(GraphUser user,Response response) {
                        if (user != null) {
                            TextView welcome = (TextView) findViewById(R.id.textview_hello);
                            welcome.setText("Hello "+ user.getName() + "!");
                            //Intent intent = new Intent(LoginScreenActivity.this,NextScreen.class);
                            //startActivity(intent);
                        }
                    }
                });
            }
        }
    });
}

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Session.getActiveSession().onActivityResult(this, requestCode,resultCode, data);
    }
}

我还在我的 Facebook 控制台中创建了应用程序,并添加了所有信息,例如密钥哈希、包名称等。并将该应用程序 ID 复制到我的 String.XML 文件中。

在清单文件中添加了应用 ID 的元数据。

问题是:

  1. 我无法在登录后继续下一个活动,例如如何移动或在哪里编写意图代码。

  2. 面部应用 (SDK) 是运行我的应用所必需的吗?如果有人没有 facebook SDK,那么解决方案是什么。

  3. 有时我收到一个错误,因为remote_app_id 与存储的 id 不匹配但我从 Facebook 控制台本身复制了应用程序 id。

请指导我解决我的问题并提出宝贵的建议。

4

1 回答 1

1
  1. 您应该将启动下一个活动的意图放在会话状态回调中(在 if(Session.isOpened()) 检查中,您当前正在执行“我”请求。

  2. SDK 是运行您的应用程序所必需的,但不是 Facebook 应用程序。SDK 包含(并捆绑)在您的 apk 中,Facebook 应用程序是一个单独的 apk,不需要使用 Facebook 登录。

  3. 如果您收到该错误,则意味着您的设置中没有正确的密钥哈希。您是否使用不同的密钥库进行签名?

于 2013-08-06T17:31:03.720 回答