2011-09-19 4 views
0

Facebook 페이지에 "fan of the week"을 선택하고 피드에 자동으로 알리는 앱에 Graph API를 사용하고 있습니다.OAuth 토큰 작동이 중지되면 어떻게해야합니까?

피드에 팬을 알리기 위해 앱을 설치 한 사용자의 OAuth 액세스 토큰을 저장합니다. 그러나 때로는 토큰이 무효화되고 앱이 피드에 게시되지 않습니다. 여기

{ 
    "error" : { 
     "message" : "Error validating access token: The session has been invalidated 
     because the user has changed the password.", 
     "type" : "OAuthException" 
    } 
} 

내가 때때로 얻을 오류의 다른 유형 :

{ 
    "error": { 
     "message": "Error validating access token: Session does not match 
     current stored session. This may be because the user changed the 
     password since the time the session was created or Facebook has changed 
     the session for security reasons.", 
     "type": "OAuthException" 
    } 
} 

이미이 사용자에 대한 "offline_access"을 가지고 있지만, 토큰은 여전히 ​​유효 때때로되고있다. 내가 OAuth 토큰을 새로 얻을 수 있도록 앱 페이지를 다시 방문하도록 요청하는 이메일을 사용자에게 전송하는 것 외에 다른 일이 발생하지 않도록하려면 어떻게해야합니까?

답변

0

사용자 개입이 필요하지 않은 방법은 없습니다. 사용자가 자주 방문하지 않는 앱이나 페이지라면 전자 메일을 보내는 것이 좋습니다. 사용자가 페이지 나 앱을 방문하면 자동으로 세션을 새로 고치는 FB Javascript SDK를 사용할 수 있으며 데이터베이스의 토큰을 업데이트하는 핸들러로 FB.Event.subscribe ('auth.sessionChange')를 구독 할 수 있습니다.

0

사용자 피드에 게시 하려는데 취소되지 않은 publish_stream 권한이있는 경우 appype | appsecret 형식의 access_token을 사용하여 대부분/userId/feed에 게시 할 수 있습니다. 응용 프로그램 액세스 토큰을 사용하고 있으므로/me는 분명히 작동하지 않습니다.

+0

고마워, 나는 페이지 피드에 게시하려고 노력하고있어.하지만 이걸 시도 할게. – Bemmu

+0

내 애플 리케이션이 126169047465269 페이지에 게시하도록 허가했다. 그러나 curl -d "applet | appsecret ="appsecret & message = foo ""https://graph.facebook.com/126169047465269/feed "를 수행하려고하면 OAuthException이 발생한다. "사용자가이 작업을 수행하도록 응용 프로그램을 허가하지 않았습니다." – Bemmu

+0

사용자가 offline_access가 아닌 publish_stream을 인증하고 토큰이 한 시간 후에 만료 될 때 작동합니다. 나는 그것이 가치가 있다고 생각했다. 불행히도 토큰을 새로 고치려면 사용자가 앱을 다시 방문해야하는 것처럼 들립니다. – bkaid

관련 문제