나는 메타 혐오 개발자다.

2024년 9월 2일 월요일

Today I Learned

날짜

2024년 9월 6일 금요일

내용

나는 메타 혐오 개발자다.

페이스북 로그인한 계정의 페이지에서 연동된 인스타그램 비즈니스 계정을 가지고 오기 위한 사투는 계속되고 있다. 우선 되는 것부터 만들자는 생각에 비즈니스 계정이 아닌 일반 계정의 게시글을 불러오는 작업을 시작했다. Docs에 들어가보니..

log240906-1.webp

그저께 충격적인 발표가 있었다. 뭔 중대발표를 90일을 남기고 하냐…

내용을 설명하자면 다음과 같다. 페이스북의 API를 이용하기 위해선 페이스북의 앱으로 등록해야 한다. 이때 앱의 유형을 선택할 수 있는데 그 중 인스타그램 일반 계정에 관한 API 사용을 위해선 앱 유형이 “소비자” 여야하고, 인스타그램 비즈니스 계정에 관해선 “비즈니스” 타입이여야 한다. 유형이 소비자인 앱이 사용하는 인스타그램 API 가 인스타그램 기본 디스플레이 API고, 유형이 비즈니스인 앱이 사용하는 API는 인스타그램 그래프 API다. 이 중 인스타그램 기본 디스플레이 API가 90일 이후부터는 사용할 수 없다는 이야기다.

블로그 게시물을 들어가보면 “비즈니스 계정을 위한 소비자 앱들은 비즈니스 앱으로 바꿔서 인스타그램 그래프 API를 사용하세요~” 라는 내용이 나온다. 그럼 그게 아닌 일반 계정들에 관한 건.. 내용이 없다. 아마 더이상 일반 계정에 관한 API는 제공하지 않나보다… 아니 그럼 확실하게 제공안한다고 말을 해주던가 이 악물고 말 안해주는거 상당히 맘에 안든다.

현재 우리 서비스는 인스타그램 비즈니스 계정에 대한 서비스(인스타그램 코멘트)를 제공하는 상황에서, 이제 인스타그램 피드라는 일반 계정을 위한 서비스를 추가하는 상황이었다. 근데 더이상 그럴 수 없다.. 이제 일반 계정에 관한 데이터는 전혀 사용할수 없게 됐다. 비단 우리 서비스를 떠나서 어디서든 인스타그램 관련 서비스를 이용하는 고객은 비즈니스 계정을 사용해야 된다.

인스타그램 코멘트는 비즈니스 계정을 가진 유저만 사용할 수 있고, 인스타 피드는 비즈니스 계정과 일반 계정을 가진 사람 모두 사용할 수 있도록 기획했다. 그래서 일반계정 유저를 위해 인스타그램 로그인을 추가해주었는데.. 그럴 필요가 없게 됐다. 그러면서 고민해봐야 할건, 페이스북 로그인이 과연 필요한가의 여부다.

이 관점을 이해하기 위해선 인스타그램 계정과 페이스북 계정의 관계를 파악해야 한다. 인스타그램 계정과 페이스북 계정은 같은 “메타 계정”으로 연동할 수 있다. 아마 인스타그램을 페이스북 계정으로 로그인하는 사람이 대부분일 텐데 바로 이런 경우다. 계정과 계정이 대등한 관계로 하나의 메타 계정에 묶여있는 케이스다. 이건 로그인의 문제라서 비즈니스 계정인지 아닌지와는 전혀 무관하다. 편의를 위해 이걸 로그인 연동이라고 부르자.

인스타그램 계정을 비즈니스로 바꾸면, 유저는 선택권이 생긴다. 페이스북 페이지와 연동할 것인가 말것인가. 공식 문서에 따르면 연동할 것을 강하게 권하고 있으나 필수는 아니다. 페이지와 연동하면서 얻는 장점은 메타 전체의 비즈니스 모델로 관리할 수 있다는 점이다. 쉽게 이야기하면 페이스북 페이지와 인스타그램을 동시에 쉽게 관리할 수 있다는 것이다. 이건 비즈니스 연동이라고 부르겠다.

여기서부터 여러 헷갈리는 케이스를 따져보게 된다. 대체 왜 이따위로 관계를 만들어놨는지 모르겠는데 일단 이렇다.

  1. 인스타그램 비즈니스 계정이 페이스북 페이지와 비즈니스 연동할 때, 페이스북으로 로그인할 수 있어야 하는가(로그인 연동이 되어있어야 하는가)?
    1. 아님. 로그인 연동과 비즈니스 연동은 별개의 이야기임.
  2. 인스타그램 비즈니스 계정이 페이스북 계정이 로그인 연동 되어있다면, 그 인스타그램 계정은 로그인 연동된 페이스북의 페이지와 자동으로 연동되는가?
    1. 아님. 로그인 연동과 비즈니스 연동은 분명 별개임.
  3. 인스타그램 비즈니스 계정을 비즈니스 연동할 때, 로그인 연동된 페이스북 계정이 있다면 반드시 그 계정에 속한 페이지에만 연동할 수 있는가?
    1. 아님. 로그인 연동한 페이스북 계정과 비즈니스 연동한 페이스북 계정은 달라도 무방함. 단, 로그인 연동한 페이스북 계정은 비즈니스 연동할 페이지에 대한 관리자 권한이 있어야함.
  4. 인스타그램 일반 계정을 비즈니스 계정으로 변경하기 위해선 페이스북 계정이나 페이스북 페이지가 필요한가?
    1. 아님.

여기서 인스타그램 코멘트를 개발할 때, 내가 이해를 다 못한채로 개발했다걸 알게 됐다. 나는 인스타그램 비즈니스 계정은 반드시 페이스북 페이지가 있어야 한다고 생각했다.. 그래서 현재 서비스에도 로그인은 페이스북 계정으로만 할 수 있게 되어있다. 페이스북 계정이 없는 인스타그램 비즈니스 계정은 없다고 생각했으니까(그 당시에).. 인스타그램을 안한다고 핑계대긴 했지만 어제 했던 반성대로 내가 계정 만들어서 테스트해봤으면 되는 문제였다..

그래서 비즈니스 계정을 가진 누구나 사용할 수 있으려면 인스타그램 로그인이 필요하다. 마침 우리의 새로운 스프린트는 인스타그램 로그인을 추가하기로 했다. 그럼

  • 페이스북으로 로그인 연동이나 비즈니스 연동이 되지 않은 인스타그램 비즈니스 계정 소유주는 인스타그램 로그인을 하면 된다.
  • 페이스북으로 로그인 연동이나 비즈니스 연동이 된 인스타그램 비즈니스 계정 소유주는 페이스북 로그인을 하면 된다.

인가? 전자는 맞는데 후자는 뭔가 이상하다. 왜 멀쩡한 인스타그램 계정을 두고 페이스북 계정으로 로그인을 해야하나? 심지어 페이스북의 데이터는 사용하지도 않는데? 물론 페이스북 로그인을 만든다고 해서 마이너스가 되진 않으니 굳이 기능상 없앨 필요는 없지 않을까 싶긴 하다. 근데 삭제했을 때의 명확한 장점은 어제 발견한 권한 문제가 자동으로 해결된다는 점이다.

현재 검수 문제의 핵심은 페이스북 페이지로부터 연동된 인스타그램 비즈니스 계정 데이터를 불러오기 위한 권한이 없다는게 문제인데 인스타그램으로 로그인하면 그런 문제가 해결된다. 왜냐하면, 페이지에서 접근하면 “페이지의 메타데이터에 대한 권한”이 필요하기 떄문이다. 인스타그램 로그인을 하면 instagram_business_basic 이라는 권한만 있으면 되는데, 이건 저번 스프린트때 10번의 구애 끝에 허가를 받아놔서 사용할 수 있다. 즉 추가로 앱 검수를 받을 일이 사라진다는 이야기! 게다가 웹훅도 사용할 수 있어 매번 유저의 댓글을 업데이트하는 호출을 하지 않아도 된다. 어떻게 할지는 팀원들과 계속 이야기해봐야 한다.

갑자기 로그인 체계를 바꿔놓고 90일을 주는 메타가 참 이해가 안되지만 놀라울 정도로 운이 좋게 상황이 흘러가고 있다. 오히려 좋을지도…. 근데 한 가지 마음에 걸리는 문제가 있다. 댓글의 작성자를 불러오는 호출을 만들었는데 이런 공지가 있다.

log240906-2.webp

우리는 이 권한에 대한 검수는 받지 않아서 사용할 수 없다… 그래서 안받아와지나 싶었는데 진짜 Username을 가져올 수 없다. 댓글 작성자를 가져올 수 없다니… 혹시나 싶어 이 객체에 관한 필드를 찾아보니

필드 이름 설명
from 개체에는 다음 항목이 포함됩니다.

id — IG 댓글을 달았던 Instagram 사용자의 Instagram-범위 ID(IGSID).

username — IG 댓글을 달았던 Instagram 사용자의 사용자 이름.    
  username IG 댓글을 작성한 Instagram 사용자의 사용자 이름.
2024년 8월 27일부터 앱 사용자의 Instagram 프로페셔널 계정의 미디어에 댓글을 남긴 Instagram 사용자의 username 필드에 액세스하려면 instagram_manage_comments 권한(앱이 Facebook 로그인을 사용하는 경우)과 instagram_business_manage_comments 권한(앱이 Instagram 로그인을 사용하는 경우)이 필요합니다.

이렇게 나온다. 뭔소린가 싶어 저 from을 요청해봤는데 username이 담겨나온다. 주니까 고맙긴 한데 도대체 애들은 지들이 뭘 주고 있는지 알고 있긴할까..? 이딴게… 전세계 시가총액 7위..?

회고

네이버 검색광고를 건드릴 떈 네이버가 참 미웠다. 다시보니 선녀다.