0

私は 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 のログイン セッションで満たされていることも確認しました。

以前にこの問題に遭遇した人はいますか?

4

1 に答える 1

0

いくつかのデバッグの後、Facebook *m_pFacebook オブジェクトの有効期限が更新されていないことがわかりました。したがって、_lastAccessTokenUpdate はまだ [NSDate distancePast] にあります。解決策は電話することです

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

sessionStateChanged が FBSessionStateOpen に変更されたとき

- (void) sessionStateChanged:(FBSession*)session state:(FBSessionState)state error:(NSError*)error {
    switch ( state ) {
        case FBSessionStateOpen:
            [m_pFacebook fbDialogLogin:session.accessToken expirationDate:session.expirationDate];
        break;
    }
}
于 2013-01-14T06:16:07.083 に答える