페이스북 로그인 구현하기

2025년 1월 6일 월요일

Today I Learned

날짜

2024년 1월 6일 월요일

내용

페이스북 로그인을 구현하자

결국 태그된 게시물을 가져오기 위해, 페이스북 로그인을 추가해주기로 했다. 이전에 해봤던 작업이기 때문에 전체적인 틀이나 방식에 대해선 잘 알고 있다. 페이지와 인스타그램 비즈니스 계정은 1대1 관계라., 계정정보를 저장하는 테이블에 페이스북 페이지 정보와 토큰을 저장하는 필드를 추가했다.

구현하다가 알게된건 이전에 내가 이용했던 것과는 다른듯 하다.. 예전에는 페이스북 API에 접근하기 위한 페이스북 로그인을 구현했었다. 이번에는 인스타그램 API를 접근하기 위한 페이스북 로그인을 구현하기 때문에 조금 달랐다. 실제로 전자는 페이지 정보를 모두 가져와서 유저가 인스타그램 비즈니스 계정이 연결된 페이지를 선택하는 기능을 우리가 직접 만들어야 했는데 후자는 페이스북 쪽에서 제공하는 화면에서 다 처리되서 편하다. 지금에서야 이해가 되었으니 편하지 만들때는 헷갈려 죽을 뻔했지만…

이 덕분에 공수가 상당히 많이 줄어들었다. 실제로 가져온 토큰으로 태그된 게시물을 불러와보니 잘 된다. instagram_manage_comments 라는 권한이 추가로 필요해 검수를 받긴 해야하지만…

인스타그램과 페이스북 로그인 때 추가한 scope는 다음처럼 다르다

1
2
3
4
5
6
7
8
9
10
11
  private readonly instagramLoginSettings = {
    appId: environment.metaAppId,
    redirect_uri: `https://${environment.frontURL}/callback`,
    scope: 'instagram_business_basic,instagram_business_manage_comments',
  };

  private readonly facebookLoginSettings = {
    appId: environment.facebookAppId,
    redirect_uri: `https://${environment.frontURL}/callback`,
    scope: 'instagram_manage_comments,instagram_basic,pages_show_list,pages_read_engagement,business_management',
  };

태그된 게시물을 가져오기 위한 scope인 instagram_manage_comments를 위(인스타그램 로그인)에다가 추가할 경우

{“message”:”Business and user permissions are mutually xclusive”,”status”:”fail”}

라고 뜬다. 비즈니스 관련 권한과 개인 권한을 한꺼번에 요청하면 안된다는 건데… 이따위로 만들어놓을거면 어디에 써놓기라도 하던가 하

어찌되었건 구현이라도 빨리 되어서 다행이다. 빨리 검수를 신청해야겠다.

회고

정말 메타와 엮이고 싶지않다.