2011-01-29 3 views

답변

1

offline_access를 (를) 요청 하시겠습니까? 그렇지 않으면 토큰이 만료되지만 토큰을 쿼리하면 만료 날짜가 반환됩니다. 전화하기 전에 옆에서 확인할 수 있습니다.

사용자의 권한을 확인하거나 offline_access를 확인하지 않은 것으로 확인되면 Facebook 서버를 치는 것이 필요합니다. 난 그냥 게시물을 시도하고 실패하면 오류를 처리합니다. 토큰이 유효하지 않은 것보다 가능성이 큽니다.

드문 경우를 처리하기 위해 모든 전화를하기 전에 점검하여 작업량을 두 배로 높이십시오. 액세스 토큰이 유효하지 않으면 여전히 프롬프트를 표시해야하므로 오류 및 프롬프트를 처리 할 수 ​​있습니다.

게다가 경쟁 조건이 있으므로 어쨌든 오류를 처리해야합니다. access_token을 확인할 수 있지만 확인과 게시 사이의 시간에 토큰이 유효하지 않게 될 수 있습니다.

+0

답변 해 주셔서 감사합니다. 문제는 페이 스북 API가 만료되거나 누군가가 권한을 취소 할 때 처리되지 않는 예외 (내 프레임이 아니므로 시도/포착 할 수 없음)가 발생한다는 것입니다. 그래서 나는 SOL ... 그래서 만기에 대한 chekcing 충분하지 않습니다. 나는 친절 해. –

+0

나는이 예외를 잡으려고 시도 할 수 없다는 주장에 의문을 제기한다. 내 응용 프로그램에서 C# SDK를 사용하여 항상 발생하며 예외를 처리합니다. 사용자가 활성 세션에있는 경우 사용 권한/세션에 대해 다시 로그인하십시오. 오프라인 시나리오 인 경우 문제에 대한 사용자의주의를 환기시킬 수있는 몇 가지 옵션이 있습니다. (1) 캔버스 페이지로 돌아올 때 프롬프트를 표시합니다. (2) 대시 보드 API 메소드를 사용하여 카운터를 설정합니다. 전자 메일 주소가있는 경우 전자 메일 –

+0

여기에이 예외가 발생하는 스택이 있습니다 - 보시다시피 - 내가 소유하고있는 코드가 없으므로 시도하거나 catch 할 수 없습니다. 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에서 앱을 제거하면 오프라인 토큰이 만료됩니다 (다른 메커니즘을 통해 앱을 다시 사용하도록 설정 한 경우에도 마찬가지입니다).

관련 문제