Android:通过自定义应用中的Facebook登录验证用户

时间:2013-08-06 05:50:15

标签: android facebook facebook-login facebook-authentication android-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);
    }
}

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

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

问题是:

  1. 登录后我无法继续进行下一次活动,如移动方式或编写意图代码的位置。

  2. 运行我的应用程序是否需要面部应用程序(SDK)。如果任何人没有facebook SDK而不是解决方案。

  3. 有些时候我收到错误,因为 remote_app_id与存储的ID不匹配但是我从脸书控制台本身复制了应用ID。

  4. 请引导我解决我的问题,并提出宝贵的建议。

1 个答案:

答案 0 :(得分:1)

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

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

  3. 如果您收到该错误,则表示您的设置中没有正确的键哈希值。您是否使用其他密钥库进行签名?

相关问题