我使用的是Facebook Facebook SDK 3.1.1,并且已经成功地集成了很多iOS功能。坚持3.1.1,我正在使用
[FBSession openActiveSessionWithPermissions:permission
allowLoginUI:bAllowLoginUI
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];然后我需要发送"apprequests",并且在SDK3.1中没有新的方法可以实现,所以我不得不使用Facebook对象和FBDialog来使用废弃的API。
但是,调用已弃用的对话框函数:
[m_pFacebook dialog:@"apprequests"
andParams:params
andDelegate:delegate];导致弹出FBDialog并提示用户通过该对话框再次登录。我需要直接进入apprequests对话框,而不需要用户再次输入他们的凭据,我确信有一种方法可以做到这一点,正如我在钻石冲刺和其他游戏中看到的那样。
我已经尝试使用FBSession.activeSession.accessToken设置m_pFacebook.accessToken,并且我还确保m_pFacebook.session中填满了FBSession的登录会话
以前有人遇到过这个问题吗?
发布于 2013-01-14 14:16:07
经过调试,发现Facebook *m_pFacebook对象的expirationDate没有更新,所以_lastAccessTokenUpdate还在NSDate distantPast中。解决方案是调用
[m_pFacebook fbDialogLogin:session.accessToken expirationDate:session.expirationDate];when sessionStateChanged to FBSessionStateOpen
- (void) sessionStateChanged:(FBSession*)session state:(FBSessionState)state error:(NSError*)error {
switch ( state ) {
case FBSessionStateOpen:
[m_pFacebook fbDialogLogin:session.accessToken expirationDate:session.expirationDate];
break;
}
}https://stackoverflow.com/questions/14310480
复制相似问题