2012-09-10 1 views
5

페이스 북에서 offline_access 권한을 제거하고 있으므로 새 시스템을 사용하기 위해 웹 사이트를 이전하고 싶습니다. 나는 시도하고 대한 액세스 포인트를 사용하면페이스 북 그래프 API (서버 측 인증)에서 장기간 액세스 토큰을 얻으려면 어떻게해야합니까?

access_token => BLAHBLAHBLAHdontusemytokensilly 
expires => 4992 

: I는 서버 측 인증을 가진 사람을 처리 할 때, 나는이 응답을 얻을 그러나 https://developers.facebook.com/roadmap/offline-access-removal

:

나는 페이스 북의 웹 사이트에서이 문서를 발견 (해당 문서에서) 몇 시간 이상 액세스 토큰을 연장하려면 다음과 같이하십시오.

access_token => BLAHBLAHBLAHdontusemytokensilly 
expires => 4990 

에 따르면 그 문서, 서버 측 OAuth는 60 일간 지속되는 토큰을 가져야 만합니다. 이유는 모르겠습니다.

저는 2 시간마다 OAuth 리디렉션을 통해 사용자를 보내고 싶지 않습니다.

아이디어가 있으십니까? 감사!

먼저 내가 여기에 사용자를 리디렉션 :

https://www.facebook.com/dialog/oauth?client_id=BLAHBLAH&redirect_uri=http%3A//localhost/user-social/facebook/redirect&scope=user_about_me%2Cuser_events%2Cuser_interests%2Cuser_likes%2Cfriends_likes%2Cuser_location%2Cuser_status%2Cuser_subscriptions%2Cfriends_subscriptions%2Cemail%2Ccreate_event%2Cpublish_stream%2Crsvp_event%2Cpublish_actions%2Cuser_actions.music%2Cfriends_actions.music%2Cuser_actions.news%2Cfriends_actions.news%2Cuser_actions.video%2Cfriends_actions.video%2Cmanage_pages

UPDATE 요청으로

, 여기 (브라우저에서) 내가 데려 갈거야 흐름이다 사용자를 여기로 리디렉션합니다.

http://localhost/user-social/facebook/redirect?code=BLAHBLAHBLAHsomeawesomecode#_=_ 

은 그 때 나는 액세스 토큰과 같이 요청 :

https://graph.facebook.com/oauth/access_token?client_id=BLAHBLAH&redirect_uri=http%3A//localhost/user-social/facebook/redirect&client_secret=BLAHBLAHsomeawesomesecret&code=BLAHBLAHBLAHsomeawesomecode

내가 페이스 북에서이 휴식 나타납니다

access_token=BLAHBLAHBLAHdontusemytokensilly&expires=4057 

이 obviosly 단명 토큰입니다. 위의 Facebook 문서에 따르면, (서버 측 OAuth를 사용하고 있기 때문에) 수명이 긴 토큰을 받았어야합니다.

https://graph.facebook.com/oauth/access_token?client_id=BLAHBLAH&redirect_uri=http%3A//localhost/user-social/facebook/redirect&client_secret=BLAHBLAHsomeawesomesecret&grant_type=fb_exchange_token&fb_exchange_token=BLAHBLAHBLAHdontusemytokensilly

이 페이스 북이 반환 것입니다 : 그것은 단명 때문에

그러나, 나는 긴 수명 토큰을 교환하는 것을 시도

access_token=BLAHBLAHBLAHdontusemytokensilly&expires=3967 

같은 access_token은 두 요청에서 모두 반환됩니다.업데이트 2

내가 Facebook Debugger에 위의 액세스 토큰을 넣고이 그것을 반환 것입니다 :

App ID: 
BLAHBLAH 
User ID:  
211800900 : David Barratt 
Issued: 
Unknown 
Expires:  
1347303600 (in 40 minutes) 
Valid: True 
Origin: Web 
Scopes: create_event create_note email friends_actions.music friends_actions.news friends_actions.video friends_likes friends_subscriptions manage_pages photo_upload publish_actions publish_stream rsvp_event share_item status_update user_about_me user_actions.music user_actions.news user_actions.video user_events user_interests user_likes user_location user_status user_subscriptions video_upload 

UPDATE 3

내 모든 권한을 삭제 한 후와 앱 재 승인 (@phwd 제안). Facebook API는 다음을 반환합니다.

access_token=BLAHBLAHBLAHdontusemytokensilly 

이것이 내가 long-tived access_token을 반환 했습니까? 그렇다면 만료일은 어디입니까?

나는 페이스 북 디버거를 통해 위의 access_token이 프로그램을 실행할 때 UPDATE 4

, 나는 다음과 같은 결과를 얻을 :

App ID: 
BLAHBLAH 
User ID:  
211800900 : David Barratt 
Issued: 
1347309538 (39 minutes ago) 
Expires:  
Never 
Valid: True 
Origin: Web 
Scopes: create_event create_note email friends_actions.music friends_actions.news friends_actions.video friends_likes friends_subscriptions manage_pages photo_upload publish_actions publish_stream rsvp_event share_item status_update user_about_me user_actions.music user_actions.news user_actions.video user_events user_interests user_likes user_location user_status user_subscriptions video_upload 

이 원래 문제를 해결하기 위해 보이지만이 access_tokens 그 이상하다 규정 된 60 일을 지속하는 대신 무기한입니다.

왜 그런지에 대한 아이디어가 있으십니까?

답변

2

알고 계신지 확실하지 않습니다. 하지만 액세스 토큰은 사용자가 응용 프로그램에 로그인 한 횟수와 상관없이 하루에 한 번 갱신됩니다.

은 참조 : 페이스 북 이후 https://developers.facebook.com/roadmap/offline-access-removal/

+2

을 타격 할 수있는 앱의 고급 설정에서 "offline_access 권한을 제거"를 사용할 수 있는지 확인 유효 기간이 지난 액세스 토큰은 60 일 동안 지속됩니다 (게시 한 질문은 단지 몇 시간 만 지속된다고 말합니다). –

1

가 offline_access 권한을 제거하고, 내가 가서 새로운 시스템을 사용하는 우리의 웹 사이트를 마이그레이션 할.

것은

당신이 한 경우 Advanced settings

,이 긴 같은 관계가 버그 https://developers.facebook.com/bugs/378106708911903

+0

"오프라인 액세스 권한 삭제"가 "사용함"으로 설정되어 있는지 확인할 수 있습니다. –

+0

또한 캔버스 앱이 아니며 웹 사이트이므로 버그가 적용되는지 잘 모르겠습니다. –

+0

@DavidBarratt 당신은'HTTP DELETE/me/permissions'를 사용하여 권한을 취소하고 재 시도 했습니까? 그렇다면 canvas 앱에만 국한되지 않을 수 있습니다. – phwd