首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook apprequests with 3.0 SDK

Facebook apprequests with 3.0 SDK
EN

Stack Overflow用户
提问于 2013-01-14 09:59:24
回答 1查看 400关注 0票数 0

我使用的是Facebook Facebook SDK 3.1.1,并且已经成功地集成了很多iOS功能。坚持3.1.1,我正在使用

代码语言:javascript
复制
        [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。

但是,调用已弃用的对话框函数:

代码语言:javascript
复制
[m_pFacebook dialog:@"apprequests"
           andParams:params
         andDelegate:delegate];

导致弹出FBDialog并提示用户通过该对话框再次登录。我需要直接进入apprequests对话框,而不需要用户再次输入他们的凭据,我确信有一种方法可以做到这一点,正如我在钻石冲刺和其他游戏中看到的那样。

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

以前有人遇到过这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-14 14:16:07

经过调试,发现Facebook *m_pFacebook对象的expirationDate没有更新,所以_lastAccessTokenUpdate还在NSDate distantPast中。解决方案是调用

代码语言:javascript
复制
[m_pFacebook fbDialogLogin:session.accessToken expirationDate:session.expirationDate];

when sessionStateChanged to FBSessionStateOpen

代码语言:javascript
复制
- (void) sessionStateChanged:(FBSession*)session state:(FBSessionState)state error:(NSError*)error {
    switch ( state ) {
        case FBSessionStateOpen:
            [m_pFacebook fbDialogLogin:session.accessToken expirationDate:session.expirationDate];
        break;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14310480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档