2

私のアプリは現在、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

4

1 に答える 1

0

実際、offline_access権限は、4001年に期限切れになった認証トークンを返しました。

これまでの私の経験では、iOS 6のネイティブFB認証は、有効期限が4001年として(アプリのplistに)記録されているトークンを常に返しますが、 FBトークンデバッガーによると、実際の有効期限は大きく異なります。要するに、電話に保存されている値に依存しないでください。どういうわけか切断があります。

私も、これらのメソッドを呼び出すことによってトークンが更新されることについて、あなたが行ったのと同じ仮定(FBSession openActive ...およびhandleDidBecomeActiveを呼び出す)を持っていましたが、それも私にとってはうまくいきませんでした。

あなたのアップデートでは、あなたは私が提起した同様の質問にリンクしました、そして私はちょうど私の解決策を追加しました。あなたはここでそれをチェックすることができます:http: //facebook.stackoverflow.com/questions/13125430/ios-6-facebook-login-not-refreshing-access-token#answer-13298770

うまくいけば、これが役立ちます!

于 2012-11-08T22:21:17.257 に答える