페이스북 앱을 통해 글을 등록하도록 설정하는 방법 글에서도 언급했지만 오늘 또 한번의 삽질을 해서 다시 한번 글을 남긴다. 오늘 삽질한 내용은 현재 내가 속해 있는 group 목록을 가져오는 작업이었다. facebook에 "/me/groups"를 활용해 group 목록을 가져올 수 있다. 그런데 이 api를 활용해 데이터를 가져오려고 해도 어떤 데이터도 조회되지 않았다. 그렇다고 에러 메시지가 뜨는 것도 아니었다. 한참을 삽질한 후에 권한 문제가 아닐까하고 권한을 설정하는 작업을 시작했다.

페이스북 앱을 통해 글을 등록하도록 설정하는 방법 글에서도 삽질한 경험이 있지만 내가 간과한 부분은 데이터를 조회하는 부분이기 때문에 특별히 권한 처리를 하지 않아도 공개 설정 여부에 따라 데이터가 조회되리라 생각했다. 하지만 그건 큰 오산이었다. 앱에서 각 데이터 유형마다 권한 설정을 추가하고 로그인하는 시점에 데이터에 접근할 수 있도록 사용자에게 승인을 받아야 한다.

먼저 facebook의 각종 데이터에 접근할 수 있는 권한은 https://developers.facebook.com/docs/reference/login/extended-profile-properties/ 에서 확인할 수 있다. 그룹 데이터에 접근하려면 먼저 앱에 user_groups 권한을 추가해야 한다.

위와 같이 권한을 추가한 후에 로그인하는 소스 코드의 scope에 user_groups을 추가해야 한다.

<form action="/signin/facebook" method="POST">
    <input type="hidden" name="scope" value="publish_stream,user_groups" />
    <button type="submit" class="btn-login-facebook"><i class="foundicon-facebook"></i> 페이스북</button>
</form>

facebook api 사용하면서 삽질을 워낙 많이 해서 앞으로는 삽질하는 횟수가 줄어들 듯하다. 어찌됐든 문제를 해결해서 다행... 나 같이 삽질하는 사람이 줄었으면 하는 바람으로 글을 쓴다. 이 권한들을 포괄해서 한번에 승인받을 수 있는 권한은 없으려나 모르겠다. 앱 운영하는 사람이 편하기는 하겠지만 사용자는 대략 난감일 듯하다.