实际上,我下面从Facebook SDK样本SessionLoginFragment.java例子。
我真的不明白是这样的:
当我做
session.openForRead(new Session.OpenRequest(fragment).setCallback(statusCallback));
登录我的用户在Facebook,并要求基本的读取权限(只是为了测试整合)它根本不起作用。
我挖了一下使用调试和我走的道路。 如果你不把requestCode到会话的OpenRequest它会给它一个随机(这是确定)。
openForRead(我的实际会话中创建状态)将创建权限对话框。 当你点击“确定”按钮,它会执行一个
request.getStartActivityDelegate().startActivityForResult(intent, request.getRequestCode());
你可以看到从FB SDK源代码的代码。 井requestCode是相同的会话(这里是确定)。
当FB您登录到系统中,将完成他的facebook.LoginActivity,叫我回来我的onActivityResult在我的活动。 问题是,这里的requestCode是从请求的一个不同。 我不知道为什么和它从何而来!
如果我进入我的FB帐号我的应用程序是存在的,那么就意味着我已经做了很好完成正确的验证流程。 但我不会得到正确验证从我的应用程序,因为这个问题的。
你知不知道为什么,我该如何解决呢?
谢谢。
- 流动明细更新:
这是实际的流量(从片段 ):
session.openForRead(new Session.OpenRequest(fragment).setCallback(statusCallback));
创建后,请求代码是(总是)64206现在openForRead流将调用(最后一部分)
request.getStartActivityDelegate().startActivityForResult(intent, request.getRequestCode());
这一呼吁来自Facebook SDK的LoginActivity,做客户机/服务器验证/ OAuth的
现在,我的活动就叫做onActivityResult(不是片段,但对活动的一部分)
这里我打电话
Session.getActiveSession().onActivityResult(activity, requestCode, resultCode, data);
这里的requestCode是requestCode 129742
这怎么可能? 正如我已经说过,在这一切的流动问题是requestCode回到onActivityResult是从我pendingRequest requestCode不同的,这种断裂登录客户端部分(getActiveSession()函数。onActivityResult不执行代码返回)。