繁体   English   中英

使用3.0 SDK的Facebook请求

[英]Facebook apprequests with 3.0 SDK

我正在使用Facebook iOS SDK 3.1.1,并且已经成功集成了许多Facebook功能。 坚持3.1.1,我正在使用登录

        [FBSession openActiveSessionWithPermissions:permission
                                       allowLoginUI:bAllowLoginUI
                                  completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
                                  [self sessionStateChanged:session state:state error:error];
        }];

然后,我需要发送“ apprequests”,并且没有在SDK 3.1中实现的新方法,因此我必须使用Facebook对象和FBDialog退回到已弃用的API。

但是,调用不赞成使用的对话框函数:

[m_pFacebook dialog:@"apprequests"
           andParams:params
         andDelegate:delegate];

会弹出FBDialog并提示用户通过对话框再次登录。 我需要直接进入apprequests对话框,而无需用户再次输入其凭据,而且我确信有办法做到这一点,因为我已经在Diamond Dash和其他游戏中实现了它。

我尝试过使用FBSession.activeSession.accessToken设置m_pFacebook.accessToken,并且还确保m_pFacebook.session充满了FBSession的登录会话

有人遇到过这个问题吗?

经过一些调试后,发现Facebook * m_pFacebook对象的expirationDate尚未更新,因此_lastAccessTokenUpdate仍在[NSDate distantPast]中。 解决办法是打电话

[m_pFacebook fbDialogLogin:session.accessToken expirationDate:session.expirationDate];

当sessionState更改为FBSessionStateOpen时

- (void) sessionStateChanged:(FBSession*)session state:(FBSessionState)state error:(NSError*)error {
    switch ( state ) {
        case FBSessionStateOpen:
            [m_pFacebook fbDialogLogin:session.accessToken expirationDate:session.expirationDate];
        break;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM