簡體   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