2011-01-29 16 views

答えて

1

offline_accessをリクエストしていますか?そうでない場合、トークンは期限切れになりますが、トークンを照会すると有効期限が返されます。電話をかける前にあなたの側で確認することができます。

ユーザーを検証してもアクセス許可が削除されていないか、オフラインアクセスの有効性が確認されていないため、Facebookサーバーにアクセスする必要があります。私はポストを試して、失敗した場合はエラーを処理します。トークンが有効である可能性は高いでしょう。

頻度が低いケースを処理するために、すべての呼び出しの前に確認することで、重大な違反(作業を2倍)が発生しています。アクセストークンが無効な場合は、依然としてプロンプトを表示する必要があります。そのため、エラーとプロンプトを処理するだけです。

さらに、競合状態が存在するため、とにかくエラーを処理する必要があります。 access_tokenを確認できますが、チェックとポストの間にトークンが無効になる可能性があります。

+0

お返事ありがとうございます。問題は、FacebookのAPIが期限切れになったときや誰かが権利を取り消したときに、未処理の例外(私のフレームの下ではない - だから私はそれを捕まえることができない)を投げるということです。だから私はSOL ...だから期限切れのためにchekcingは十分ではありません。私はkindlea SOLです。 –

+0

私はこの例外をキャッチして処理することはできないという主張に疑問を呈します。私のアプリでC#SDKを使って常時実行され、例外を処理します。ユーザーがアクティブなセッションにいる場合は、アクセス許可/セッションを再設定します。オフラインのシナリオでは、問題にユーザーの注意を引くオプションがいくつかあります。(1)キャンバスページに戻ったときにプロンプ​​トを表示する(2)ダッシュボードAPIメソッドを使用してカウンタを設定する(3)送信する電子メールアドレスがある場合は電子メール –

+0

ここにはこの例外が発生するスタックがあります - 私が所有しているコードはありませんので、試してもキャッチすることはできません。 Facebook.dll!Facebook.FacebookApp.ResponseCallback(System .IAsyncResult asyncResult、Facebook.FacebookAsyncCallbackコールバック、オブジェクト状態)+ 0x5bバイト Facebook.dll!Facebook.FacebookApp.RequestCallback.AnonymousMethod__d(System.IAsyncResult ar)+ 0x12バイト System.Windows.dll!System.Net.Browser.ClientHttpWebRequest .InvokeGetResponseCallback.AnonymousMethod__8(オブジェクトの状態2) mscorlib.dll!System.Threading.ThreadPool.WorkItem.doWork(オブジェクトo) –

0

私の経験から(4.2を使用して)、try .. catch(OAuthExceptionが発生する可能性があります)でリクエストをラップする必要があります。そして、私はオフラインでアクセスできるシナリオについて話しています。オフラインアクセスがあり、ユーザーがFacebook内でアプリを削除した場合、オフライントークンは期限切れになります(ユーザーが他の方法でアプリを再び有効にしても)。

関連する問題