FRAMEWORK/CORDOVA

내가 만든 웹페이지에서 회원탈퇴시 페이스북 권한 해제 하기

나나나나나나나ㅏ나난ㄴ나ㅏ나나 2020. 1. 30. 15:59
728x90

개발환경

laravel

php

 

 

저번에 페이스북 로그인 연동에 이어서 회원탈퇴시 로그인할때 허용해주었던 페이스북 권한을 해제해 주려고 합니다!

 

 

혹시 로그인 부분이 필요하신 분을 위해 링크 남겨놓을게요

2020/01/29 - [🏢] - Cordova로 Facebook Login을 연동해보자!

 

Cordova로 Facebook Login을 연동해보자!

환경 cordova 9.0.0 android 8.1.0 mac php laravel 개요 일반적인 안드로이드나 ios, web이 아닌 하이브리드에서 페이스북 로그인을 연동해야한다! 개발하는게 다 그렇지만 나는 내가 하나하나 개발하는게 아니라..

become-a-developer.tistory.com

 

사용자가 회원탈퇴 할때 데이터베이스에서 정보를 정리해주는 것도 필요하지만 초기에 허용해준 권한을 해지해주어야했기때문에 권한 해지부분을 봤는데 페이스북 도큐먼트가 제가 못읽는건지 알아보기 힘들더라구요 😢 그래서 삽질을 로그인 만큼 오래 걸린거같아요

우선 제가 참고한 도큐먼트는 페이스북 공식 사이트입니다.

 

https://developers.facebook.com/docs/facebook-login/permissions/requesting-and-revoking

 

요청 및 취소 - Facebook 로그인 - 문서 - Facebook for Developers

 

developers.facebook.com

 

여기 하단에 있는 "로그인 취소" 부분인데요

 

처음에 이부분을 봤는데 제가 찾는 부분이 아닌거같아서 넘어가고 또 이부분인거 같긴했는데 글을 이해 못해서 엄청 헤맸어요ㅠㅠ 여기 보면 그래프 API 엔드포인트를 호출하라고 적혀있는데 이부분은 "facebook graph api" 에서 볼수있어요! 

 

https://developers.facebook.com/docs/graph-api

 

그래프 API - 문서 - Facebook for Developers

그래프 API를 사용하면 Facebook의 소셜 그래프에서 데이터를 읽고 쓸 수 있습니다.

developers.facebook.com

 

(위에 사이트에 들어가면 그래프 api 문서를 볼 수있습니다)

저는 php laravelf을 사용하기 때문에 curl로 전송해주었어요 저기 document대로만 해주면 오류가 납니다ㅠㅠ 

 

error: {
  message: "Unsupported delete request. Object with ID '' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api"
  type: "GraphMethodException"
  code: 100
  error_subcode: 33
  fbtrace_id: "A3NlyWOOGg5XmNcHrRRl8Mt"
}

 

이런 오류가 나요ㅠㅠ 도큐먼트에서 하라는 대로 했는데 오류가 발생했어요ㅠㅠ 이부분때문에 반나절은 잡아먹은거같아요ㅠㅠㅠ 이게 자세히는 모르겠지만 여기서 type에 나온건 method 문제라고 나오지만 token을 넣어주지 않아서 인증이 안되는 오류였어요!

결국 토큰이 문제였다는ㅠ

 

그래서 수정한 코드는 다음과 같습니다.

$url = 'https://graph.facebook.com/{user-id}/permissions?access_token={token}';

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
   CURLOPT_CUSTOMREQUEST => "DELETE"
));

return curl_exec($curl);

 

결과는 이렇게 나와요!

{success: true}

 

진짜 결과 보고 눈물날뻔ㅠㅠㅠ 제가하면서 놓친 포인트는 token 추가와 curl delete method 였던거같아요 curl에 대한 지식이 부족하니까 이러한 결과가 생긴게 아닌가 싶어요 curl 공부를 해야될꺼같아요!

 

728x90