2012-07-21 3 views
0

a question on Stack Exchange Web Applications에 상세히 설명 된 문제를 해결하기 위해 페이지 이름과 해당 access_token이 해당 페이지에서 생성 한 이벤트를 iCal 캘린더 파일로 내보내는 작은 PHP 스크립트를 작성했습니다. 분명히이 파일은 사람이 액세스 할 수있는 파일이 아니라 예를 들어 구독 용 Google 캘린더입니다.간단한 정보 검색을위한 페이스 북 그래프 API 인증

페이스 북 그래프 탐색기를 통해 access_token을 생성하고 만료되었다는 것을 깨달았습니다. 그래서 질문은 : 만료되지 않는 페이지 access_token을 얻을 수 있습니까? 그렇게 못하면, 정말로 만료 된 것을 얻을 수 있을까요?

그럴 수 없다면 누구에게 어떤 조치를 취할 수 있습니까? 한 시간에 한 번 access_token을 수동으로 제공하는 것은 실현 가능성이 낮습니다.

+0

먼저 장기 사용자 액세스 토큰을 받으십시오 (https://developers.facebook.com/roadmap/offline-access-removal/ 참조).페이지 액세스 토큰을 사용하면 페이지 액세스 토큰이 기본적으로 만료되지 않습니다. – CBroe

+0

감사합니다 @CBroe! 이 힌트는 나를 올바른 길로 인도했다. 내 해결책에 대한 자세한 내용은 아래를 참조하십시오. –

답변

1

@CBroe가 올바른 길로 나를 안내하고 @MPaulo가 나를 도와주었습니다. 다음은 위 질문의 시작 부분에 링크 된 질문에서 설명한 문제를 해결하기 위해 만든 스크립트 파일의 시작 부분에서 프로세스를 설명하는 방법입니다.


먼저 액세스 토큰이 필요합니다. 이것은 복잡한 것입니다. 일반적인 것을 얻는 것은 쉽지만 영구히 지속되는 것이 필요합니다. 여기에 시나리오 5에서 설명한 바와 같이 :

  • 우리의 새로운 액세스 토큰을 사용하여 토큰 수명이 긴 액세스
  • 에 대한 교환을하는 얻을 토큰 정기적으로 수명이 짧은 액세스 할 수 있습니다

    1. : https://developers.facebook.com/roadmap/offline-access-removal/, 우리는 필요 영구 페이지 액세스 토큰.

    우선 https://developers.facebook.com/apps/에 새로운 Facebook 앱을 만듭니다. 그것은 무엇이든 지명 될 수 있고, 실제로 사용되지 않을 것입니다. 도메인 채우기 - 단순한 HTML을 보여 주며 리디렉션을하지 않는 웹 페이지를 가져 오는 것은 중요하지 않습니다. 내 정적 웹 페이지 인 http://jobjorn.se/을 사용했지만 http://example.org/도 사용할 수 있습니다.

    여기 스택 오버플로에 MPaulo의 지시에 따라

    : - 새로 만든 응용 프로그램에서 - https://stackoverflow.com/a/11238327/564628는 응용 프로그램 ID를 사용하여이 페이지를 방문하십시오 https://www.facebook.com/dialog/oauth?client_id=MY_APP_ID&redirect_uri=MY_SITE_URL&scope=manage_pages&response_type=token 것은 "MY_APP_ID"와 "MY_SITE_URL"를 교체해야합니다. 그런 다음

    ,이 페이지를 방문하여 교환 수명이 긴 액세스 토큰에 대한 단기 액세스 토큰을 : https://graph.facebook.com/oauth/access_token?client_id=MY_APP_ID&client_secret=MY_APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=YOUR_ACCESS_TOKEN 것은 "YOUR_ACCESS_TOKEN" "MY_APP_ID", "MY_APP_SECRET"를 교체해야하고,을 (마지막 액세스되는 당신이 마지막으로) 첫 페이지에서

    을받은 토큰, 토큰 여기 페이지에 액세스 할 수 있습니다 : https://graph.facebook.com/me/accounts?access_token=YOUR_NEW_ACCESS_TOKEN 것은 "YOUR_NEW_ACCESS_TOKEN"대체해야합니다 (액세스는

    이 아래에 붙여 넣기) 두 번째 페이지에서 받았다 토큰. 영구적이어야하지만 버그로 인해 2 개월 만 지속될 수 있습니다. 자세한 내용은 https://developers.facebook.com/bugs/151056591697025을 참조하십시오. 그러나 그것은 수정 된 것으로 보인다. 여기에서 테스트 할 수 있습니다. https://developers.facebook.com/tools/debug/access_token

  • 0

    앱을 만들고 앱의 자격증 명을 사용하여 인증합니다. 사용자 특정 데이터를 읽지 않는 한 사용자 access_token이 필요하지 않습니다.

    +0

    사용자 특정 데이터를 읽습니다. API를 통해 페이지의 이벤트에 액세스하려면 페이지의 관리자 여야합니다. –

    관련 문제