私のアプリは現在、iOS用のFacebookSDKバージョン3.1.1を使用しています。
iOS6では、で奇妙な動作に気づいていFBSession expirationDate
ます。日付は常に4001年(遠い未来?)に設定されます。これは許可に関連している可能性があることを読みましたが、それoffline_access
を求めているわけではありません(以前は、非常に古いバージョンのアプリで行いました。ただし、これはクリーンなイメージへの新規インストールです)。
FB SDKガイドラインに従って、私たちは常にFBSessionopenActiveSessionWithReadPermissionsを介して最初に基本的な読み取り権限を要求します。返されるセッションの有効期限は常に4001-01-01です。後で投稿したいときは、に電話FBSession reauthorizeWithPublishPermissions
して、を求めpublish_action
ます。
トークンの有効期限が切れるまで、これはすべて正常に機能しているようです。期限切れのトークンをグラフAPIに渡していて、それらの呼び出しが失敗していることがわかったため、expirationDateの問題に気づいただけです。
しかし、これは起こらないはずですよね?-アプリがコールドで起動するたびに呼び出しFBSession openActiveSessionWithReadPermissions
、アプリがアクティブになるたびに呼び出しますFBSession handleDidBecomeActive
。期限切れのアクティブトークンを更新するには、これは正しいはずです、そうですか?
何が間違っている可能性がありますか、また確認すべき点は何ですか?また、expirationDateが4001に設定されているのはなぜですか?
編集:
私の問題は、ここで説明されていることに関連していると思います:FacebookiOSSDKのopenActiveSession後の期限切れのアクセストークン
グラフAPIの呼び出しにFBSDKサポートを使用していません。そのため、iOS6で管理されているトークンを更新するために明らかに組み込まれているSDKサポートを利用していません。
編集2:
これは私の問題の正確な複製だと思います。
iOS6Facebookログインがアクセストークンを更新しない
ここでも参照: http ://developers.facebook.com/bugs/441739699216684?browse = search_5099512da57214b73000801