Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何正确使用com.facebook.Session?_Android_Facebook - Fatal编程技术网

Android 如何正确使用com.facebook.Session?

Android 如何正确使用com.facebook.Session?,android,facebook,Android,Facebook,我正在尝试在我的应用程序中使用Facebook登录作为身份验证机制 我不知道如何正确使用com.facebook.Session对象 我有活动,片段在里面,我有按钮登录到Facebook上的片段 在按钮处理程序中,我有以下内容: 这是我的回拨: 当我点击按钮时,我看到TextView被回调更新,打开的文本是tvSessionStatus.setTextsession.getState.toString 它永远不会变为“打开”或其他任何形式。我做错了什么?确保: 一,。您已经使用OpenSSL正确

我正在尝试在我的应用程序中使用Facebook登录作为身份验证机制

我不知道如何正确使用com.facebook.Session对象

我有活动,片段在里面,我有按钮登录到Facebook上的片段

在按钮处理程序中,我有以下内容:

这是我的回拨:

当我点击按钮时,我看到TextView被回调更新,打开的文本是tvSessionStatus.setTextsession.getState.toString

它永远不会变为“打开”或其他任何形式。我做错了什么?

确保:

一,。您已经使用OpenSSL正确生成了应用程序id,并在应用程序清单中声明了它

二,。在Facebook应用程序详细信息页面上正确输入应用程序包名称和应用程序id

三,。您已申请相关权限,并已从FB处收到

四,。访问令牌有效,即非空

五,。访问令牌的会话状态已打开


六,。您已经调用了活动/片段的onActivityResult。

是否将会话代码放在onResume中?否。什么代码?与我的按钮处理程序中的代码相同?但我还有一个问题。我怎么知道我需要添加/覆盖onActivityResult?你能提供相关文档的链接吗?
Session session = Session.getActiveSession();
if (session != null && (!session.isOpened() && !session.isClosed()))
{
    session.openForRead(new Session.OpenRequest(this)
    .setPermissions(Arrays.asList("public_profile"))
    .setCallback(statusCallback));
}
else 
{
    Session.openActiveSession(getActivity(), this, true, statusCallback);
}
private Session.StatusCallback statusCallback = new SessionStatusCallback();

private class SessionStatusCallback implements Session.StatusCallback {
    @Override
    public void call(Session session, SessionState state, Exception exception) {
        // Update session status (in TextView)
        TextView tvSessionStatus = (TextView)(getView().findViewById(R.id.tvSessionStatus));
        tvSessionStatus.setText(session.getState().toString());
    }
}