1인 콘텐츠 개발실

[c#] CEF를 이용한 페이스북 자동화 프로그램 (5) 본문

개발&제작/프로그램

[c#] CEF를 이용한 페이스북 자동화 프로그램 (5)

표준라이브러리 2017. 3. 2. 23:59

이 글은 .NET에서 Chromium Embedded Framework(CefSharp)와 Facebook SDK를 이용한 "페이스북 자동화 프로그램"의 개발 과정을 담은 기록 문서들 중 (5)에 해당하는 글입니다. 


(1) - 프로그램 구상 및 개요

(2) - 페이스북 어플리케이션 등록 방법

(3) - Facebook SDK와 CefSharp 적용 방법

(4) - 프로그램의 구동 과정

(5) - 마무리 : 배운것과 보완할 점




# 알아간 내용들


평소 c#을 이용하여 .NET 프레임워크의 라이브러리만을 사용하여 프로그램을 개발하곤 하는데, 이번처럼 웹 서비스를 기반으로 프로그램을 개발하다 보니 기존과는 또 다른 개발의 재미를 새로이 경험해봤습니다. 그래서 그런지 이번에 준비하고 개발하면서 이건 습득해두면 두고두고 쓰고 좋겠다 싶은것을 하나 꼽자면 페이스북 어플리케이션 인증과 API 사용방법이 아닐까 생각합니다. 


다른 SNS를 비롯하여 기타 웹 서비스, 모바일 서비스들이 표준 인증 방식인 "OAuth 2.0"를 사용하고 있습니다.

(OAuth 2.0에 대한 설명과 활용하고 있는 서비스들에 대해서는 아래 링크를 참조하세요)


OAuth 2.0 :  https://oauth.net/2/

- 인스타그램 개발자 페이지 : https://www.instagram.com/developer/

- 트위터 개발자 페이지 : https://dev.twitter.com/

- 다음 개발자 페이지 : https://developers.daum.net/ 


OAuth 2.0의 장점으로 대표적인 것들이 여러개 있을텐데, 제가 사용하면서 느낀 가장 큰 장점은 역시 오픈 라이센스이기 때문에 기업 자체에서도 별도의 인증 방식을 적용하느라 비용들일 필요 없어, 해당 API를 개인 개발자들에게 제공하는데 어느 정도 부담을 줄여줄 수 있다는 점인 것 같습니다. 보통 서비스에서 제공하는 API를 사용하는데는 일정량의 액수를 지불하거나, 무료인 대신에 한번에 요청 받을 수 있는 데이터 수가 제한되어 있기 마련인데, 간편하게 무료로 사용할 수 있는 점이 큰 매력이었습니다.


인증 방식에 대한 시스템을 익혀두면 그 이후에 API를 사용하는 법은, 어찌보면 다른 라이브러리의 메서드를 쓰는것과 별반 다르지 않기 때문에 레퍼런스와 예제들을 잘 참고하면 되는 사항이라 크게 어렵지 않고, 또한 OAuth 2.0가 아니더라도, 토큰을 할당 받아 접근하는 방식이 데이터를 보호함과 동시에 매우 심플한 구조이기 때문에 대부분의 서비스들이 API 제공하는 방식들이 그렇게 크게 다르지는 않은 것 같습니다.


그렇기에 이번에 습득한 내용을 기반으로 크게 해매지 않고 사용할 수 있을것 같은 자신감도 생깁니다.




# 프로그램 보완할 사항


프로그램을 1차적으로 완성하고 나니 좀 더 다듬고 싶은 욕심에 한번 생각해봤습니다.


소스 코드에 직접적으로 선언하고 있는, 페이스북 ID, 비밀번호, 엑세스 토큰을 간접적으로 처리하는 것이 가장 먼저 해야할 첫번째 사항인 것 같습니다.


ID와 비밀번호는 .txt 파일을 이용해서 외부에서 따로 받아오는 형태로 수정하는 것이 제일 간단하게 처리하면서 효율적일 것 같고, 엑세스 토큰은 페이스북 API를 통해 그때그때 마다 받아서 활용하는식으로 수정해야합니다. 


두번째로는 [자동 로그인]과 [자동 글쓰기] 버튼을 생략하여 프로그램을 더욱 간소화하는것입니다. 자동화 프로그램을 목표로 했으니, 프로그램 실행과 동시에 자동으로 로그인하여 글을 쓰도록 처리하는게 제일 간단한 자동화일것이고, 여기서 발전한 형태를 생각하면 사용자가 여러 옵션들과 기능들을 선택한 뒤 실행 버튼으로 처리하는 방식이 될 것 같습니다.


마지막으로 프로그램 종료 시 방문했던 기록들과 쿠키를 자동으로 지우도록 기능을 추가하고 싶습니다. 지금 현재는 자동으로 로그아웃까지는 되는데, 기록들과 쿠기가 지워지는지는 의문이긴 합니다. 이는 좀 더 조사하고 적용해봐야 겠습니다.

Comments