하위 페이지
  • 페이스북 앱을 통해 글을 등록하도록 설정하는 방법
메타 데이터의 끝으로 건너뛰기
메타 데이터의 시작으로 이동

slipp.net은 페이스북에 앱을 등록하고 페이스북 OAuth 인증을 통해 로그인하도록 구현되어 있다. 따라서 페이스북으로 로그인한 사용자는 페이스북의 자신의 담벼락에 자신이 쓴 글이나 답변 글을 전송할 수 있는 기능을 추가했다. 이 기능을 개발한 후 내가 쓴 글을 공유하기 위해 이 기능을 유용하게 사용해왔다. 그런데 최근에 다른 사용자들이 글이 전송되지 않는다는 이야기를 들었다. 그래서 원인을 찾아보니 인증 실패가 원인이었다. 원인을 찾기 위해 몇 시간 삽질했는데 나와 같은 경험을 하는 개발자가 있을 것으로 생각해 공유한다. 에러 메시지는 다음과 같았다.

Received Facebook error response of type OAuthException: (#200) The user hasn't authorized the application to perform this action

이와 관련해 온라인 검색을 해보니 무수히 많은 자료가 있다. 앱을 통해 담벼락에 글을 쓸 수 있도록 하려면 먼저 페이스북 앱에서 글쓰기가 가능하도록 다음과 같이 설정해야 한다.

  • 먼저 페이스북 앱으로 접근한다.
  • 앱 수정 > 허가로 이동한다.
  • Extended Permissions에 publish_stream 권한을 추가한다.
위 과정을 보면 정말 쉽게 해결할 수 있다. 그런데 spring social security 사용하다 보니까 위 OAuth 인증 URL 찾는데 시간이 한참 걸렸다. 만약 이미 서비스를 운영하는 중이라면 로그아웃 후에 다시 로그인을 하면 위 화면이 뜨면서 허가할 것인지 나타난다.
위 전체 과정은 http://thoughts.citynaksha.com/2011/04/post-on-facebook-page-as-page-not-as.html 문서에서 더 자세하게 참고할 수 있다. 이 이외에도 다양한 action에 대해 권한 설정하는 것이 가능하다. 
페이스북에서 사용할 수 있는 permission은 https://developers.facebook.com/docs/reference/login/extended-permissions/ 문서를 참고하면 알 수 있다.