User:DarkSTALKER/API:Edit

From MediaWiki.org
Jump to: navigation, search

{{API Intro}}

MediaWiki version: 1.13

Contents

[edit] Требования

  • Версия MediaWiki 1.13.3 или выше.
  • Включенные опции $wgEnableAPI и $wgEnableWriteAPI.

[edit] Токен

Для редактирования страницы требуется специальный токен (edit token), действительный для всех страниц, но только во время текущей сессии. Если вы хотите защититься от конфликта правок, то кроме того вам необходимо узнать время последние проверки. Вы можете осуществить это с помощью следующего запроса:

Получение токена

<?xml version="1.0" encoding="utf-8"?>
<api>
  <query>
    <pages>
      <page 
           pageid="15580374" 
           ns="0" 
           title="Main Page" 
           touched="2008-03-27T21:15:39Z" 
           lastrevid="199631190" 
           counter="0" 
           length="4712" 
           edittoken="000000000000000000+\">
        <revisions>
          <rev 
             revid="199631190" 
             user="David Levy" 
             timestamp="2008-03-20T17:26:39Z" 
             comment="Have you tested it in every major browser at every resolution." />
        </revisions>
      </page>
    </pages>
  </query>
</api>

[edit] Редактирование

Страницы могут создаваться и редактироваться с помощью action=edit. Pages can be edited and created with action=edit.

[edit] Параметры

  • title: Название страницы для редактирования
  • section: Номер секции для редактирования. Используйте 0 для редактирования верхней секции и new для создания новой.
  • text: Содержимое новой страницы или секции.
  • token: Edit token
  • summary: Описание правки.
    • Когда используется section=new значение будет использоваться в качестве заголовка новой секции.
  • minor: Если true, тогда правка будет помечена как незначительная.
  • notminor: Если true</cdoe>, тогда правка не будет помечена как незначительная, даже если установлен параметр «отмечать все правки как незначительные».
  • bot: Если true, то помечает как правку ботом, даже, если правка совершена учётной записи без флага «бот».
  • basetimestamp: Время последней версии, чтобы избежать конфликта правок.
  • starttimestamp: Время получения токена.
  • recreate: Если true, то подавляет ошибку о том, что страница была удалена.
  • createonly: Если true, то выдает ошибку, если страница существует.
  • nocreate: Если true, то выдает ошибку missingtitle, если страница существует.
  • watchlist: Установка настроек списка наблюдения для страницы:
    • watch: добавить страницу в список наблюдения;
    • unwatch: удалить страницу из списка наблюдения;
    • preferences: использовать настройки по умолчанию;
    • nochange: не изменять список наблюдения.
  • md5: Хэш MD5 параметра text. Если хэши не совпадают, тогда правка отклоняется. Параметр может использоваться для защиты от повреждения данных.
  • captchaid: CAPTCHA ID из предыдущего запроса.
  • captchaword: Ответ на CAPTCHA.
  • undo: ID версии для отмены. Переопределяет text, prependtext и appendtext
  • undoafter: Отменяет в все правки от undo до установленного ID. Если не установлено, то отменяет только одну правку.

[edit] Примеры

Примечание: В этом примере все параметры для простоты передаются GET-запросом. Однако, action=edit рекомендуется использовать POST-запросы; GET-запрос вызовет ошибку. Не забывайте указывать Content-Type: application/x-www-form-urlencoded в заголовке запроса. Полученный токен оканчивается +\, это требуется для преобразования заголовка в URL. Добавления новой секции в en:Talk:Main Page

<?xml version="1.0" encoding="utf-8"?>
<api>
  <edit result="Success" pageid="12" title="Talk:Main Page" oldrevid="465" newrevid="471" />
</api>

[edit] CAPTCHAs и ошибки расширений

Если правка требует CAPTCHA, то вы получите что-то вроде:

<?xml version="1.0" encoding="utf-8"?>
<api>
  <edit result="Failure">
    <captcha type="math" mime="text/tex" id="509895952" question="36 + 4 = " />
  </edit>
</api>

In most cases, you won't get a math CAPTCHA, but a URL to an image (in the url field). When you've solved the CAPTCHA, retry the request (in this case with captchaid=509895952&captchaword=40).

Other extensions that use the APIEditBeforeSave hook may return errors using either the format described above or the usual error format.

[edit] Possible errors

In addition to the usual stuff:

  • code: notitle
    • info: The title parameter must be set
  • code: notext
    • info: One of the text, appendtext, prependtext and undo parameters must be set
  • code: notoken
    • info: The token parameter must be set
  • code: invalidsection
    • info: The section parameter must be set to an integer or 'new'
  • code: protectedtitle
    • info: This title has been protected from creation
  • code: cantcreate
    • info: You don't have permission to create new pages
  • code: cantcreate-anon
    • info: Anonymous users can't create new pages
  • code: articleexists
    • info: The article you tried to create has been created already
  • code: noimageredirect-anon
    • info: Anonymous users can't create image redirects
  • code: noimageredirect
    • info: You don't have permission to create image redirects
  • code: spamdetected
    • info: Your edit was refused because it contained a spam fragment: ``wikitext''
  • code: filtered
    • info: The filter callback function refused your edit
  • code: contenttoobig
    • info: The content you supplied exceeds the article size limit of bytes bytes
  • code: noedit-anon
    • info: Anonymous users can't edit pages
  • code: noedit
    • info: You don't have permission to edit pages
  • code: pagedeleted
    • info: The page has been deleted since you fetched its timestamp
  • code: emptypage
    • info: Creating new, empty pages is not allowed
  • code: emptynewsection
    • info: Creating empty new sections is not possible.
  • code: editconflict
    • info: Edit conflict detected
  • code: revwrongpage
    • info: rrevid is not a revision of ``pagename''
      • Thrown if an invalid revid is given for undo or undoafter
  • code: undo-failure
    • info: Undo failed due to conflicting intermediate edits
Personal tools
Namespaces

Variants
Actions
Navigation
Support
Download
Development
Communication
Print/export
Toolbox