페이스북 앱의 권한

2024년 9월 5일 목요일

Today I Learned

날짜

2024년 9월 5일 목요일

내용

페이스북 권한의 종류

대참사났다.. 페이스북 로그인 후 댓글까지 가져오는 로직에서 도저히 연관된 비즈니스 계정이 가져와지지 않고 있었다. 로그인 후 부터 발생하는 로직은 다음과 같다.

  1. 유저가 페이스북 로그인
  2. 서버는 페이스북 계정이 가진 페이스북 페이지를 모두 불러와 저장
  3. 이때, 페이스북 페이지와 연동된 인스타그램 비즈니스 계정 정보도 저장
  4. 유저가 사용할 페이스북 페이지 선택
  5. 선택된 페이스북 페이지와 연동된 인스타그램 비즈니스 계정의 미디어 정보를 조회
  6. 해당 미디어들의 댓글 정보를 모두 조회
  7. 조회한 데이터를 저장

3번에서 어떤 경우에는 불러와지고, 어떤 경우에는 불러와지지 않았다. 심지어 같은 계정 내에서도 어떤 페이지는 불러와지는 반면 어떤 페이지는 분명 비즈니스계정과 연동되어 있음에도 불러와지지 않았다. 왜 그런지 도저히 모르겠어서 열심히 메타 개발자 Docs를 뒤져봤다…

인스타그램 비즈니스 계정과 페이스북 페이지의 연결에 대한 정보가 정말 여러 곳에 흩어져있는데 딱 한곳에서만

참고: 현재 하나의 Facebook 페이지만 비즈니스 계정에 연결할 수 있습니다.

출처

를 발견했다. 그래서 그런가보다… 이걸 광고관리자 관련 페이지인 여기만 써놓냐고…

그래서 다른 가계정을 만들어서 테스트를 해봤는데 권한이 없다고 뜬다.. 내가 필요한 권한 4개 받는데 10번을 시도했구만 뭔소린가… 싶어서 찾아봤는데.. 페이지와 연결된 인스타그램 비즈니스 계정 정보를 받아오려면 pages_read_engagement, Page Public Metadata Access 라는 두 권한이 추가로 필요하단다… 아니 그럼 그동안은 왜 받아와졌을까…

페이스북의 권한의 수준에는 2가지가 있다. 일반(standard_access), 고급(advanced_access). 권한의 수준은 언뜻 보면 권한을 사용할 수 있는 효과 범위를 나타내는 것 같지만 전혀 아니다. 사용할 수 있는 대상이 달라진다. 일반 수준은 아무것도 안해도 그냥 제공되는데, 앱과 관련되어 등록된 사람만 이용할 수 있는 권한이다. 앱 관리자, 개발자, 테스터 등등.. 직접 우리 앱 설정에 등록해줘야 한다(최대 500명). 앱이 출시되더라도 일반 수준이라면 앱을 다운로드 받은 일반 소비자의 액세스 토큰에는 그 권한이 담기지 않는다.

따라서 저 두 가지 권한도 일반 수준이었다. 우리가 그동안 테스트 했던 계정은 앱 관리자 계정으로 만든 페이스북 페이지와 인스타그램 계정이었다. 내가 만든 테스트 계정도 여기에 테스터로 등록했다. 페이스북 앱 검수 제출할 때, 작동되는 모습을 보여줘야하니까.. 그래서 고급 액세스 수준이 필요한 유저의 입장에서 테스트를 해본 적이 없어서 몰랐던 부분이다.. 그 와중에 8월 24일부터는 비즈니스 계정 미디어에 달린 댓글을 가져오는데 또 instagram_business_manage_comments 라는 권한이 필요하댄다… 진짜 뭔 권한을 이렇게 많이 필요해.. 권한을 요청하는 권한도 만들겠네 이러다가..

맨날 테스트코드 노래를 불렀는데, 정작 내가 만든걸 진짜 유저의 입장에서 사용하지 않은 결과다. 앞으로 내가 만든 서비스를 유저와 동일한 환경에서 진행해야겠다.

회고

API Docs 쓰는 포지션은 없으려나.. 이렇게 개판으로 쓸리가 없는데