我正在开发一个应用程序,我想通过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的清单文件中添加了元数据。
问题是:
登录后我无法继续进行下一次活动,如移动方式或编写意图代码的位置。
运行我的应用程序是否需要面部应用程序(SDK)。如果任何人没有facebook SDK而不是解决方案。
有些时候我收到错误,因为 remote_app_id与存储的ID不匹配但是我从脸书控制台本身复制了应用ID。
请引导我解决我的问题,并提出宝贵的建议。
答案 0 :(得分:1)
您应该在会话状态回调中启动下一个活动的意图(在if(Session.isOpened())检查中,您当前正在执行“我”请求。
SDK是运行您的应用程序所必需的,但不是Facebook应用程序。 SDK包含(并捆绑)与您的apk,Facebook应用程序是一个单独的apk,并不需要登录Facebook。
如果您收到该错误,则表示您的设置中没有正确的键哈希值。您是否使用其他密钥库进行签名?