program tip

서버가 FB 페이지 정보를 가져 오기위한 오래 지속되는 FB 액세스 토큰

radiobox 2020. 7. 27. 07:49
반응형

서버가 FB 페이지 정보를 가져 오기위한 오래 지속되는 FB 액세스 토큰


Facebook 액세스 토큰과 그로 인한 슬픔에 대해 많은 질문이 있다는 것을 알고 있지만 많은 실험과 많은 모호한 블로그 기사 (FB 및 기타)를 읽음에도 불구하고 여전히 내 요구에 대한 명확한 답변을 얻는 데 어려움을 겪고 있습니다. . 지금까지 프로세스를 간결하게 분석하겠습니다.

  • 서버 측에서 단일 Facebook 페이지에서 게시물 / 상태를 가져와야하는 사이트를 만들고 있습니다
  • 나는 그 페이스 북 페이지의 관리자입니다
  • 페이스 북 앱을 만들었습니다
  • Facebook Graph API Explorer를 사용하여 내 앱과 내 계정에 연결된 짧은 키를 생성하여 내 페이지에 대한 액세스 토큰을 볼 수있는 권한을 내 계정에 부여합니다.
  • 단기 키를 장기 키 (60 일) ala 시나리오 4로 변환 했습니다.

여기에 내가 붙어있는 곳이 있습니다. 내 60 일 키는 서버에서 페이지에서 필요한 정보를 가져 오는 데 잘 작동하지만, 알 수 있듯이 60 일 키를 프로그래밍 방식으로 확장 할 수있는 방법은 없습니다. 또한 수동으로 Facebook Graph API 탐색기로 이동하여 키를 생성하지 않고 새로운 단기 키를 생성하는 방법을 모릅니다.

내 서버는 사용자 기반 시스템이 아닌 Facebook API에 요청을하기 때문에 (사용자가 Facebook 앱을 다시 인증하도록 쉽게 요청할 수 있음) 매우 혼란스러운 시스템을 만듭니다. Facebook은 더 이상 사용되지 않으므로 offline_access서버가 내 페이지에서 정보를 가져 오는 영구적 인 방법이 없습니까? 실제로 수동으로 새 키를 작성하고 60 일마다 수동으로 서버를 업데이트해야합니까?

아니면 내가 놓친 것이 있습니까?

최신 정보:

여기에서 이전에 찾은 단계별 가이드는 자체 답변 으로 마이그레이션되었습니다 .


이것은 이전에 질문에 있었던 단계입니다-그들은이 답변으로 마이그레이션되었습니다.

@Igy의 도움을 받아 만료되지 않는 Facebook 페이지 액세스 토큰을 생성 할 수 있음을 발견 한 후에는 동일하게보고자하는 모든 사람들을위한 명확한 단계별 안내가 있습니다.

  1. 정보를 가져 오려는 FB 페이지의 관리자인지 확인하십시오.
  2. FB 앱 만들기 (페이지 관리자와 동일한 사용자 계정이어야 함)
  3. 받는 사람 향할 페이스 북 그래프 API 탐색기
  4. 오른쪽 상단의 "응용 프로그램"드롭 다운 목록에서 생성 한 FB 앱을 선택하십시오.
  5. "액세스 토큰 받기"를 클릭하십시오
  6. manage_pages권한 을 추가하십시오
  7. 이 그래프 API 호출을 작성하여이 단기 액세스 토큰을 장기 토큰으로 변환하십시오. https://graph.facebook.com/oauth/access_token?client_id=<your FB App ID >&client_secret=<your FB App secret>&grant_type=fb_exchange_token&fb_exchange_token=<your short-lived access token>
  8. 돌아온 새로운 장기 액세스 토큰을 가져옵니다.
  9. 새로운 장기 액세스 토큰을 사용하여 계정을 보려면 그래프 API 호출을 작성하십시오. https://graph.facebook.com/me/accounts?access_token=<your long-lived access token>
  10. 를 잡아 access_token당신이에서 정보를 당겨됩니다 페이지에 대해
  11. 토큰을 보풀 이 설정되어 있는지 확인하십시오 Expires: Never!

그렇게해야합니다. 다음과 같은 경우를 제외하고는 만료되지 않는 Facebook 페이지 액세스 토큰이 있어야합니다.

  • 당신은 당신의 페이스 북 계정 암호를 변경
  • 대상 페이지에 대한 관리자 액세스 권한이 손실됩니다
  • Facebook 앱을 삭제하거나 승인을 취소합니다

이 중 하나라도 있으면 액세스 토큰이 유효하지 않게됩니다.

을 얻는 중이면 액세스 토큰 디버거(#100) Tried accessing nonexisting field (accounts) on node type (Page) 로 이동 하여 값을 복사 한 후 9 단계에서 URL의 "me"부분을 바꾸십시오.User ID


이에 대해서는 오프라인 액세스 지원 중단 문서 에서 다룹니다.

(를 통해 페이지 액세스 토큰을 검색 할 페이지 관리자에 대한 토큰을 60 일 사용 /PAGE_ID?fields=access_token또는 /me/accounts) - 페이지 액세스 토큰이 만료 시간이 없습니다


단계별 가이드를 제공하는 @redhotvengeance에게 감사드립니다.

얼마 후, Facebook 문서에 명확하게 설명되어 있습니다.

https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension

페이지 액세스 토큰 확장

앱은 페이지 관리자 사용자가 manage_pages 권한으로 인증 할 때 페이지 액세스 토큰을 검색 할 수 있습니다. 이 페이지 액세스 토큰을 검색하는 데 사용 된 사용자 액세스 토큰의 수명이 짧으면 페이지 액세스 토큰도 수명이 짧습니다.

To get a longer-lived page access token, exchange the User access token for a long-lived one, as above, and then request the Page access token. The resulting page access token will not have any expiry time.


You can also copy and past from the app dashboard on facebook. The steps:

  1. Go to https://developers.facebook.com

  2. Select your app in the top right corner of the page (pic of what it looks like)

  3. Click on Messenger from the options on the left (it will go to setting automatically) (pic of what it looks like)
  4. Go to the "Token Generation" section in the page. Select what page you want to generate the token for. (pic of what that section looks like)
  5. The copy and past your page token where ever you need it.

Keep in mind that while in theory your token won't expire, that it is directly tied to what ever facebook account your logged into. So say you change your password or you remove the permissions from between your account and your app then your token won't be valid any more.

참고URL : https://stackoverflow.com/questions/12168452/long-lasting-fb-access-token-for-server-to-pull-fb-page-info

반응형