2

Facebook iOSSDK3.1を使用しています。

FBドキュメントから

モバイルSDK(AndroidおよびiOS)、デスクトップアプリ、およびサーバー側のログインフローから作成されたアプリは、長期間有効なユーザーアクセストークンを自動的に取得します。この長期間有効なトークンは、ユーザーが認証フローをトリガーするたびに更新および延長されます。

トークンの有効期間は60日です。

私は現在の実装を持っています:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{

  if (![FBSession activeSession].isOpen) {
    if ([FBSession activeSession].state == FBSessionStateCreatedTokenLoaded) {
      [[FBSession activeSession] openWithCompletionHandler:^(FBSession *session,
                                                               FBSessionState status,
                                                               NSError *error) {}];
    }
   }
}

、ただし、これは、アプリが初めて起動されたとき、またはアプリが強制終了された後にのみトリガーされます。

ここにいくつかの質問があります:

  1. アプリが使用されているが、60日間FB呼び出しが行われない場合に、トークンを拡張するための正しい手順は何でしょうか。

  2. アプリが実行中またはバックグラウンドモードになり、ユーザーが共有/ログアウト/ログインなどのFB機能を使用していない場合、トークンは自動的に更新されますか?

  3. SDKを介してFB呼び出しにアクセスする場合、トークンは自動的に更新され、FBSessionで使用できるようになりますか?

4

1 に答える 1

4

明確にするために、Facebook SDK 3.1では、API呼び出しが行われたとき、または認証フロー中に、アクセストークンがバックグラウンドで更新されます。更新は、最後の更新時刻から約1日後に行われます。

  1. その間FB呼び出しが行われず、トークンの有効期限が切れた場合は、ユーザーを再承認する必要があります。これは、それらが再認証フローを介して取得されることを意味する場合があります。したがって、FB関連の呼び出しを行い、トークンの有効期限が切れたために失敗した場合は、再認証する必要があります(https://developers.facebook.com/docs/reference/api/errors/も参照)。トークンの有効期限が切れたり無効になったりするさまざまな方法がある可能性があるため、とにかくこれをアプリに組み込む必要があります。
  2. いいえ、API呼び出しで更新されます(1の回答を参照)。
  3. はい、最後の更新から一定時間後です。
于 2012-12-21T18:14:17.877 に答える