0

私のアプリは、ユーザーがFacebookにログインする最初の実行中にのみアプリリクエストを送信できます。アプリが再起動されると、FBSession.activeSession.isOpen が false を返すため、アプリ リクエストは停止されます。

ただし、FBSession.activeSession.isOpen は false を返しますが、アプリはウォールへの投稿、フレンド リストの取得などの他の操作を実行できますが、アプリ リクエストを送信することはできません。それでも、有効なアクセストークンも持っています。

何か案は?

4

2 に答える 2

2

あなたは「FBSession.activeSession.isOpen が false を返す」と言いますが、念のため: このテストはいつ実行しますか? ログイン要求への呼び出しが返されたとき、または非同期要求のコールバック内で?

リクエストのコールバックの外で行われた場合、セッションがまだ開かれていないと言うことがあります。その後、リクエストは適切に返されます。これは、別の FB リクエストへの以降の呼び出しが成功することを意味します。

それは役に立ちますか?

そうでない場合は、コードの概要が表示される可能性があります。

于 2012-11-21T10:39:59.640 に答える
1

わかりました、前の回答からのコメントの横にあります:

はい、それはあなたがすでに言ったことです。しかし、コードのどこでisOpenをチェックしますか?適切な値を期待するには、次のようになります。

FBSession openActiveSessionWithReadPermissions:_readPerms allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {

        // here is the proper place to check the isOpen boolean, and to go on with your program, including the app request
    }];

// not the proper place to check isOpen.

それは役に立ちますか?

于 2012-12-03T14:02:23.770 に答える