[주의!] 문서의 이전 버전(에 수정)을 보고 있습니다. 최신 버전으로 이동
1. 개요2. 용도3. API 사용 방법
3.1. python
3.1.1. 편집 시작
3.1.1.1. 결과
3.1.2. 편집 제출
3.1.2.1. 결과
3.1.3. 역링크 조회
3.1.3.1. 결과
3.1.4. 토론 목록 조회
3.1.4.1. 결과

1. 개요[편집]

the seed 엔진에 존재하는 권한 중 하나로 말그대로 API에 접근할 수 있는 권한이다.

2. 용도[편집]

더시드엔진은 공개 API를 통한 외부 접속 기능을 지원한다. 단, API는 계정 사용자에 한해서 지원되며 API로 접속하려면 계정의 로그인 정보 대신 API Token이라는 256자리의 무작위 숫자+알파벳으로 구성된 개인 식별키가 필요하다.[발급방법][주의][3] 이를 이용해 웹브라우저가 아닌 봇, 터미널 프로그램등을 이용해 엔진에 직접 접근하여 자동 편집 등의 위키 작업이 가능하다. 이 때 API를 사용하기 위해서 필요한 권한이 바로 이 권한이다.

더시드엔진의 공개 API는 기본적으로 보호 처리가 되어 있어서 이 권한이 없으면 API Token이 있어도 엔진 상에서 API 접근이 차단된다.[4] 따라서 API를 이용한 봇을 운용하려면 반드시 이 권한이 필요하다.

나무위키알파위키의 경우 봇 계정에게 이 권한을 부여해서 API를 이용한 자동 편집을 할 수 있게 해준다. 다만, 자세한 봇 사용 계획과 규모, 그리고 유사 시 대처 방안 등을 자세하게 담은 사용 계획을 제시 후 승인을 받아야 하며, 이후 봇으로 문제를 일으키거나 하면 권한이 강제로 회수될 수도 있으니 주의. 이 권한으로 API에 접속해서 편집을 하는 경우 '최근 변경'에서 기여자 이름 옆에 (API)라고 표시되어 봇에 의한 편집임을 구분할 수 있는데, 나무위키 한정으로 최근 변경에서 더 이상 봇 편집이 뜨지 않게 커스텀되어 있다.[5][6]

더시드위키에서는 악용 가능성이 딱히 없는지라 요청 시 무난하게 권한을 부여받아 봇을 테스트해볼 수 있다. 다만, API 활용 계획 등을 명확하게 밝혀야 한다.

https://doc.theseed.io에서 API의 사용 방법을 확인할 수 있다.

3. API 사용 방법[편집]

1. 사용자가 요청하면 JSON으로 반환하게 된다.
2. API_TOKEN[7]에는 내 정보의 API Token 발급 버튼을 눌러 자신의 계정 비밀번호를 입력한 뒤 나오는 token값을 적으면 된다.

3.1. python[편집]

3.1.1. 편집 시작[편집]

import requests

headers = {
    'Authorization': 'Bearer API_TOKEN',
}

requests.get('https://theseed.io/api/edit/%EB%8D%94%EC%83%88%EB%93%9C%EC%9C%84%ED%82%A4', headers=headers)

3.1.1.1. 결과[편집]
{
"text": "[[분류:테스트]]\n||<-2><table align=right><tablebgcolor=transparent><tablebordercolor=#fedcba,#fedcba><colcolor=#000,#000><colbgcolor=#fedcba,#fedcba> '''더새드위키[br]The Sad Wiki''' ||\n|| '''개설 일자''' || 2021년 1월 25일 ||\n|| '''대표색''' || {{{#!wiki style="display: inline; background: #fedcba; border-radius: 3px; padding: 3px 4px"\n{{{#000,#000 '''살구색''' {{{-2 (#fedcba)}}}}}}}}}[* [[알파위키]]의 대표색인 #abcdef를 거꾸로 한 것이다.] ||\n|| '''언어''' || 한국어 ||\n|| '''라이선스''' || CC BY-SA 4.0 ||\n|| '''링크''' || [[http://thesadwiki.rf.gd/|#]],,접속 불가,, ||\n\n[목차]\n[clearfix]\n== 개요 ==\n>여러분이 창조해 나가는 상상의 나래, 더새드위키\n>----\n>더새드위키의 슬로건\n2021년 1월 25일, [[더시드위키]]에서 만들어진 더시드위키 내 가상의 위키이다. 더시드위키로부터 파생되어 출범한 최초의 가상 위키이다.\n\n== 트리비아 ==\n * 번역하면 슬픈(sad) 위키라고 한다.\n * 네이버에 더새드위키라고 검색하면 더샌드위치로 나온다.(...)\n\n== 성지순례 ==\n[[namu]]의 자동 편집 api가 이루어진 문서다.([[https://theseed.io/history/%EB%8D%94%EC%83%88%EB%93%9C%EC%9C%84%ED%82%A4?from=28|r28, 2021.04.28]])\n\n== 존재 가능한 이유 ==\n더시드위키가 테스트위키라 규정이 없고 해서 이렇게 가상의 위키도 따로 만들 수 있게 되었다. namu가 이 문서에 테스트를 하고 [[https://doc.theseed.io/|기록한 내용]]을 보니 공식적으로도 존재를 인정한 듯하다. 아무리 그렇다고 해도 더시드위키에 속해 있는 곳이니 더시드위키의 전반적인 문화나 상식(?)은 따르면서 놀아야 한다.",
"exists": true,
"token": "Ne75ll7Lkwl4ISrk+0elvCnnOFJmzZX5YNKk57IKOibBrVboccnFMpEJSPBFl3Th"
}
원문 [눌러서 펼치기/닫기]
{
  "text": "[[분류:테스트]]\\n||<-2><table align=right><tablebgcolor=transparent><tablebordercolor=#fedcba,#fedcba><colcolor=#000,#000><colbgcolor=#fedcba,#fedcba> '''더새드위키[br]The Sad Wiki''' ||\\n|| '''개설 일자''' || 2021년 1월 25일 ||\\n|| '''대표색''' || {{{#!wiki style=\"display: inline; background: #fedcba; border-radius: 3px; padding: 3px 4px\"\\n{{{#000,#000 '''살구색''' {{{-2 (#fedcba)}}}}}}}}}[* [[알파위키]]의 대표색인 #abcdef를 거꾸로 한 것이다.] ||\\n|| '''언어''' || 한국어 ||\\n|| '''라이선스''' || CC BY-SA 4.0 ||\\n|| '''링크''' || [[http://thesadwiki.rf.gd/|#]],,접속 불가,, ||\\n\\n[목차]\\n[clearfix]\\n== 개요 ==\\n>여러분이 창조해 나가는 상상의 나래, 더새드위키\\n>----\\n>더새드위키의 슬로건\\n2021년 1월 25일, [[더시드위키]]에서 만들어진 더시드위키 내 가상의 위키이다. 더시드위키로부터 파생되어 출범한 최초의 가상 위키이다.\\n\\n== 트리비아 ==\\n * 번역하면 슬픈(sad) 위키라고 한다.\\n * 네이버에 더새드위키라고 검색하면 더샌드위치로 나온다.(...)\\n\\n== 성지순례 ==\\n[[namu]]의 자동 편집 api가 이루어진 문서다.([[https://theseed.io/history/%EB%8D%94%EC%83%88%EB%93%9C%EC%9C%84%ED%82%A4?from=28|r28, 2021.04.28]])\\n\\n== 존재 가능한 이유 ==\\n더시드위키가 테스트위키라 규정이 없고 해서 이렇게 가상의 위키도 따로 만들 수 있게 되었다. namu가 이 문서에 테스트를 하고 [[https://doc.theseed.io/|기록한 내용]]을 보니 공식적으로도 존재를 인정한 듯하다. 아무리 그렇다고 해도 더시드위키에 속해 있는 곳이니 더시드위키의 전반적인 문화나 상식(?)은 따르면서 놀아야 한다.",
  "exists": true,
  "token": "Ne75ll7Lkwl4ISrk+0elvCnnOFJmzZX5YNKk57IKOibBrVboccnFMpEJSPBFl3Th"
}

#if (위키==구버전)
##the seed 구버전 커스텀 전용. (Imitated Seed 라던지)

{{{#!if previous=true
}}}





본 문서는 더시드위키의 더새드위키(r133 판) 문서에서 가져왔습니다.
CCL BY 조항에 따라 더새드위키 문서의 이전 역사를 확인할 수 있습니다.

3.1.2. 편집 제출[편집]

  • 이곳의 token에는 편집 시작에서 JSON으로 받은 token값을 입력하면 된다.
import requests
import json

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer API_TOKEN',
}

data = {
    'text': 'Hello, world', #수정할 내용
    'log': '',  #자동 편집 시 남길 편집 요약
    'token': received_token #편집 시작 시 받은 token
}

response = requests.post('https://theseed.io/api/edit/%EB%8D%94%EC%83%88%EB%93%9C%EC%9C%84%ED%82%A4', headers=headers, data=json.dumps(data))

3.1.2.1. 결과[편집]
{
  "status":"success",
  "rev":28
}

3.1.3. 역링크 조회[편집]

import requests

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer API_TOKEN',
}

response = requests.get('https://theseed.io/api/backlink/%EB%8D%94%EC%83%88%EB%93%9C%EC%9C%84%ED%82%A4', headers=headers)

3.1.3.1. 결과[편집]
{
  "namespaces":[
    {"namespace":"문서","count":6},
    {"namespace":"틀","count":5},
    {"namespace":"분류","count":1}
  ],
  "backlinks":[
    {"document":"Thesadwiki","flags":"redirect"},
    {"document":"thesadwiki","flags":"redirect"},
    {"document":"더새드위키:sad스킨","flags":"link"},
    {"document":"더새드위키:권한 요청","flags":"link"},
    {"document":"슬픈 위키","flags":"redirect"},
    {"document":"위키 등급분류","flags":"link"}
  ],
  "from":null,
  "until":null
}

3.1.4. 토론 목록 조회[편집]

import requests
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer API_TOKEN',
}
response = requests.get('https://theseed.io/api/discuss/%EB%8D%94%EC%8B%9C%EB%93%9C%EC%9C%84%ED%82%A4:%EC%97%B0%EC%8A%B5%EC%9E%A5', headers=headers)

3.1.4.1. 결과[편집]
[
  {
    "slug": "GleamingSqualidRedPies",
    "topic": "더시드위키 토론 연습장",
    "updated_date": 1736493937,
    "status": "normal"
  }
]
[발급방법] API Token은 로그인 후 '우측 상단 프로필 메뉴>내 정보' 페이지에서 최하단에 있는 API Token 항목의 발급 버튼을 누르고 계정의 비밀번호를 입력해서 발급받을 수 있다.[주의] 이 토큰은 곧 계정의 ID/비밀번호와 똑같은 역할을 하기 때문에 절대로 유출되지 않도록 주의해야 한다. API 접속은 2차 인증의 영향을 받지 않기 때문에 토큰값만 있으면 계정의 ID와 비밀번호를 몰라도 언제 어디서든지 계정에 마음대로 접속해서 API로 편집 활동을 할 수 있기 때문이다. 만약, 유출되었다고 판단되면 지체 없이 재발급해서 토큰을 교체해야 한다.[3] 참고로 한번 발급받은 API Token키는 반영구적으로 유지되지만, 최초 발급 때를 제외하고 재확인할 방법이 아예 없어서 따로 저장을 해두어야 한다. 토큰값을 잊어버려서 재발급하려면 그냥 최초 발급이랑 똑같이 다시 발급받으면 되는데 이 경우 기존 토큰은 만료되고 새 토큰값이 발급되는 식이다. 발급 횟수에는 딱히 제한이 없다.[4] 이 권한이 없는 상태에서 API 접속 시도 시 어떤 작업을 하더라도 접근 권한이 없다는 '403(Forbidden)' 에러를 반환한다.[5] 나무위키의 경우 대규모로 봇을 운용하는 사람이 많은데 이 때 여러 봇의 작동이 겹칠 경우 최근 변경이 봇 편집내역으로 도배되어서 사실상 정상적으로 기능하지 못하는 문제가 있어서 이를 방지하기 위한 조치로 보인다. 다른 위키에서도 config 등으로 설정할 수 있는지는 불명.[6] 다만, 실제로는 계속 표시되고는 있으나 최근 변경 페이지 상에서만 숨겨지도록 세팅되어 있는 것으로 보이는데 사이드바와 게시판에 뜨는 최근 변경 배너에서는 봇의 편집이 그대로 노출되기 때문.[7] 'Authorization': 'Bearer API_TOKEN'의 API_TOKEN
이때, Bearer는 제거하면 안 된다.