스레드 댓글 추첨기를 만들어봤습니다. 제작이야기 | Posted on 2025. 2. 13. 13:44

스레드 댓글 추첨기를 만들어봤습니다.
만드는김에 가능한부분인 기간내 검색 후 통계 보는 화면까지..
Threads Manana
threads.manana.kr
우선 로그인을 해야합니다.

근데 로그인에는 스레드 앱 ID 와 시크릿 코드가 필요합니다.
APP 오른쪽에 있는 링크를 클릭해서, Threads API 앱을 하나 생성하시면 얻으실 수 있습니다.
(앱을 생성하실때 리디렉션 콜백 URL은 사이트에 적혀져있는 URL을 입력하시면 됩니다.)
한번만 사용하실 예정이라면 사용후 앱을 삭제하시면 되시고, 종종 사용하시거나 하실거라면 평소 사용하시는 메모장앱에 저장 후 사용하시면 됩니다.
(물론 매번 개발자 사이트에 들어가서 비밀번호쳐서 확인 가능합니다.)
스레드 앱 ID와 시크릿 코드를 입력 후 로그인을하면, 기존 트위터 추첨기처럼 로그인 되어있는 스레드로 이동해서 로그인을 할지 물어보고, 승인을 하시면 로그인이 됩니다.
해당 화면에서 입력하는 앱 ID 와 시크릿 코드는 서버에 저장하지 않습니다.
(현 시점에서 DB 에 저장하는 정보는 없습니다.)
이렇게 제작한 이유는 이전글에도 적었다시피, 런칭을 위해서는 사업자가 필요하고, 개발중인 앱에서는 개발자로 초대된 사람을 제외하고는 사용이 불가능합니다.
그리고 권한중에 체크를 해제못하는 권한은 API 를 사용하기 위한 기본 권한입니다.
threads_read_replies 는 API 에서 답글 리스트를 가져오는데 필요한 권한입니다. (추첨 안하실거면 체크해제 하셔도 되는 권한)
threads_manage_insights 는 대시보드에서 사용하는 권한입니다. (추첨만 사용하실거면 체크해제 하셔도 되는 권한)

로그인이 정상적으로 완료되면 이렇게 설정된 기간에 대한 통계를 확인 할 수 있습니다.
(이전글에서도 이야기했다시피, 본인이 스레드를 사용하지 않기 때문에 0인데, 실제로 사용하는 유저들은 숫자가 재대로 표시됩니다.)

그러면 댓글 추첨을 시도해봅시다.
https://www.threads.net/@yunkwangseon/post/DFrXWEcSIcT
예시로 위 URL 을 가지고 테스트를 진행합니다.
(해당 추첨기능은 자기자신이 작성한 글만 가능하기 때문에, 위 URL 로는 추첨이 불가능합니다. 자기자신이 직접 게시한 게시글로 테스트해주세요.)
위 URL을 확인해보시면, 게시일이 2025년 02월 05일입니다.
URL 을 입력하고, 시작일은 2025년 02월 04일로(-1) 종료일은 2025년 02월 06일(+1)로 지정합니다.
추첨에 사용할 URL이 게시된 게시일만 중요합니다. 답변이 달린 날자는 중요하지 않습니다.
(해당 과정은 나 자신이 특정 기간에 작성한 게시글을 가져와서 ID 를 획득하기 위한 과정입니다. 이 ID가 있어야 답변들을 모두 가져올 수 있습니다.)
게시일을 정확하게 2025년 02월 05일로 하지 않는 이유는, 이게 timezone 문제 때문에 어설프게 걸치는 시간대는 데이터를 가져오지 못하게 됩니다.
그렇기 때문에 안전빵으로 ±1 을 해야합니다.
(추첨에 사용할 게시글이 여러개면 가장 빠른날과 가장 최신날을 기준으로 설정하세요.)
추가로 중요한것은 추첨에 사용되는 게시글은 일반 게시글만 사용이 가능하다는 것입니다.
(테스트 해봤는데, 답글은 API 로 데이터를 호출 할 수 없기 때문에 못불러옵니다. 인용은 가능할지도..???)

그렇게 설정이 모두 끝난 상태에서 추첨을 누르게 되면, 위와 같이 추첨 결과가 나오게 됩니다.
현재 기본 설정은 중복 당첨은 되지 않습니다.
(니즈가 있다면 선택할 수 있게 할지도..???)
Type 에 2가지가 있는데, 댓글은 1 Depth 까지만 추첨을 진행합니다.
즉, 추첨하려는 글에 댓글을 단 사람만 추첨됩니다.
대댓글 포함은 추첨하려는 글에 댓글남긴 사람 전부를 추첨합니다.
추첨글
└ 댓글 (1 Depth)
└ 대댓글 (2 Depth)
└ 대댓글 (3 Depth)
위 느낌으로 이해하시면 됩니다.
(원래는 checkbox 가 아니라 radio 로 하려고 했는데, 추후 리포스트라던가 좋아요 혹은 인용이 가능해져서 추가 할 수도 있으니..)
사용하시다가 오류 혹은 요청사항이 있으신경우는 트위터 추첨기와 마찬가지로 디스코드로 연락주시면 확인 후 처리하도록 하겠습니다.
ps. 사실 이렇게 만들거 같았으면, 그냥 오픈소스로 만들껄 그랬나 라는 생각이 좀 들기는 하는데..
추후 메타가 API 지원을 확대해줄수도 있고..
이전글에서 적은거처럼 사이트내부에서 로그인 기능을 추가할수도 있어서..
(추가를 해보려고하다가, 그러면 로그인을 2번해야하는데, 좀 별로인거 같아서 접은..)
ps2. 스레드 사이트는 트위터처럼 API 변동에 따라 기능이 추가 될수도 삭제 될수도 그리고 변경 될수도 있습니다.
ps3. 트위터처럼 인용과 좋아요 그리고 리포스트 추첨은 불가능한가요? 라는 질문에는 메타(페이스북)이 스레드 API 에서 해당 기능을 제공해주지 않기 때문에 불가능합니다. 라고 밖에 답변을 드릴 수 없습니다.
이전글에도 작성했다시피, 현재 스레드 API 는 bot 을 돌리는데 필요한 최소한의 API 만을 제공하고 있습니다.