2013-02-20 1 views
4

내 회사에는 서로 다른 앨범에 이벤트 사진을 게시하는 회사의 페이스 북 계정이 있습니다. 내 요구 사항은 페이스 북 앨범에서 모든 사진을 가져 와서 회사 웹 사이트에 표시하는 것입니다. 사진을 가져올 수 있지만 사용자 액세스 토큰은 60 일 동안 만 유효합니다. 매 2 개월마다 회사의 회사 페이 스북 계정에 로그인하고 토큰을 재생성하고 응용 프로그램에서 토큰을 업데이트해야합니다.Facebook - 영구 사용자 액세스 토큰을 얻는 방법

영구 액세스 토큰을 생성하는 방법이 있습니까? 또는 로그인 대화 상자를 표시하지 않고 내 응용 프로그램 수준에서 토큰을 다시 생성 할 수 있습니까?

앱을 만들지 않고 사진을 가져 오는 다른 방법이 있습니까?

다음 단계를 수행했습니다. https://www.facebook.com/dialog/oauth?client_id=%3CCLIENT_ID%3E&scope=manage_pages&redirect_uri=이 API 호출 코드가 있습니다. 그렇다면 토큰은 다음과 같습니다. https://graph.facebook.com/oauth/access_token?client_id= & redirect_uri = & client_secret = & code = Access Token Debugger를 사용하여 토큰을 확인했습니다. 토큰은 60 일간 유효합니다. 페이지 토큰을 얻으려면 url을 사용했습니다. graph.facebook.com/me/accounts?access_token= 내 앱 페이지 토큰을 받았습니다. 난 단지 육십일

감사

답변

3

나는 또한 응용 프로그램을 작성하지 않고 데이터에 액세스하고 싶었을 위해, 도구에서 그것의 유효을이 토큰을 확인했습니다. 나는 많은 일을 시도했지만 마침내 나는 그것을 위해 앱을 만들어야했습니다. 따라서 앱을 만들어야합니다.

또한 개발자 웹 사이트에서 2012 년 12 월에 "오프라인 액세스"권한을 삭제했다고 표시되어 있습니다. 여기를 참조하십시오 : https://developers.facebook.com/roadmap/offline-access-removal/. 그래서 그들은 오래 지속 된 액세스 토큰을 가져 왔습니다. 그들은 또한 말하기를 "나는 아직 유효 기간이 오래가는 access_token을 새로 고침하고 싶다면 새로운 단명 사용자 access_token을 먼저 얻은 다음 아래의 동일한 끝점을 호출해야합니다."

따라서 단기 액세스 토큰을 다시 가져 와서 수명이 짧은 토큰을 사용하여 수명이 긴 토큰을 얻어야합니다. 장기적으로 액세스 토큰을 얻으려면, 당신은이 같은 HTTP 요청을 보낼 수 있습니다

var short_access_token; //Get this 
var xhr = new XMLHttpRequest(); 
var f_url = "https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=CLIENT_ID&client_secret=APP_CLIENT_SECRET&fb_exchange_token="+short_access_token; 

xhr.open("GET", f_url , true); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState == 4) { 
     obj = xhr.responseText; 
     long_token = obj.split('=')[1].split('&')[0]; 
    } 
} 
xhr.send(); 

가 그와 같은 클라이언트 응용 프로그램의 비밀을 가지고

+0

정말 나쁜 생각을하는 데 도움이 희망 ... 당신은 아마있어 서버 측에서 그렇게하려고합니다. – mpowered

+0

@mpowered +1. 완전히 동의합니다. 내 클라이언트는 순전히 클라이언트 측 데모 앱 이었으므로 선택의 여지가 없었습니다. –