Android Facebook句柄会话
我正在尝试使用android版facebook sdk获取我的facebook帐户的用户名和用户ID,我正在使用以下代码片段:Android Facebook句柄会话,android,facebook,session,button,login,Android,Facebook,Session,Button,Login,我正在尝试使用android版facebook sdk获取我的facebook帐户的用户名和用户ID,我正在使用以下代码片段: final Session session = Session.getActiveSession(); if (session != null && session.isOpened()) { // If the session is open, make an API call to get user data
final Session session = Session.getActiveSession();
if (session != null && session.isOpened()) {
// If the session is open, make an API call to get user data
// and define a new callback to handle the response
Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
// If the response is successful
if (session == Session.getActiveSession()) {
if (user != null) {
user_ID = user.getId();//user id
profileName = user.getName();//user's profile name
userNameView.setText(user.getName());
}
}
}
});
Request.executeBatchAsync(request);
}
问题是会话为空,我应该如何处理会话管理?我的意思是激活会话的代码和停用会话的代码我想自己使用自己的退出和登录按钮来处理facebook会话,但找不到管理会话的代码
提前多谢 您的
Session.getActiveSession()
为null
因为您没有正确初始化会话。
请看下面的代码:
public class MyActivity extends Activity {
private UiLifecycleHelper uiHelper;
private Session.StatusCallback callback = new Session.StatusCallback() {
@Override
public void call(final Session session, final SessionState state, final Exception exception) {
/** If your session status has changed you can dead with that using this callback. */
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Your code goes here
/* Initializing a valid session. */
uiHelper = new UiLifecycleHelper(this, callback); //callback can be null
uiHelper.onCreate(savedInstanceState);
Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uiHelper.onActivityResult(requestCode, resultCode, data);}
}
@Override
protected void onPause() {
super.onPause();
uiHelper.onPause();
}
@Override
protected void onStop() {
super.onStop();
Session.getActiveSession().removeCallback(callback);
}
@Override
public void onDestroy() {
super.onDestroy();
uiHelper.onDestroy();
}
}
让我知道这是否对您有用。所以我需要使用UiLifecycleHelper来处理facebook会话?@Darkink,是的!看看Facebook开源SDK,你会发现
UiLifecycleHelper
创建了一个新会话。而activityResult的方法是什么?@DarkLink,onActivityResult
确保你在点击权限对话框时收到回调,例如。