API:Edit/ja

Requires the selected MediaWiki to have the following configuration settings set to :   and. See Manual:DefaultSettings.php.

トークン
ページを編集するために、編集トークンが必要です. このトークンはすべてのページに対して同じですが、ログインごとに変わります. 編集の衝突から保護するために(賢明なことです)、最後のリビジョンのタイムスタンプを取得することも必要です. これらの値を次のように取得します:

When passing this to the Edit API, always pass the token parameter last, or at least, after the text parameter.

ページの編集
で、ページの編集や作成ができます.

パラメータ

 * Some of these parameters seem to be revised in v1.20; for the current list, see ApiEditPage::getAllowedParams. To see the parameter list currently in use at Wikipedia, see: ApiEx/ja


 * : 編集するページ. Cannot be used together with.
 * : Page ID of the page to edit. Cannot be used together with.
 * : 編集するセクション. トップのセクションに対しては0、新しいセクションに対して'new'を使う
 * : (バージョン1.19で追加) 新しいセクションを追加する場合にセクション名として使う. 省略した場合は替わりにsummaryで指定した内容が使われる
 * : 新しいページ(もしくはセクションの)内容
 * : Edit token. Especially if you are not using the  parameter, the token should be sent as the last parameter, or at least, after the text parameter, to prevent a bad edit from getting committed if transmission of the body is interrupted for some reason.
 * : 編集のコメント
 * : 設定されると、細部の編集としてマークする
 * : 設定されると、"Mark all my edits minor by default"とMy preferences(オプション)で有効にしていたとしても、細部の編集としてマークしない.
 * : If set, mark the edit as bot; even if you are using a bot account the edits will not be marked unless you set this flag
 * : 最後のリビジョンのタイムスタンプで、編集の衝突を検知するために使われます. 衝突を無視するためには設定されてない状態にしておきます
 * : Timestamp when you obtained the edit token. Used to detect edit conflicts. Leave unset and use  to ignore conflicts
 * : 設定されると、ページが削除されている間のエラー表示を抑制しページを再作成する
 * : 設定されると、ページが既に存在する場合にエラーをスローする
 * : 設定されると、ページが存在しない場合にエラーをスローする
 * : Specify how the watchlist is affected by this edit, set to one of "watch", "unwatch", "preferences", "nochange":
 * : ページをウォッチリストに追加する
 * : ウォッチリストからページを削除する
 * : use the preference settings (Default)
 * : don't change the watchlist
 * : MD5 hash (hex) of the  parameter. If this parameter is set and the hashes don't match, the edit is rejected. This can be used to guard against data corruption
 * : CAPTCHA ID from the previous request
 * : Answer to the CAPTCHA
 * : Revision ID to undo. Overrides,   and
 * : Undo all revisions from  up to but not including this one. If not set, just undo one revision

, this needs to be urlencoded (so it will end with ) before it is passed back.

CAPTCHAと拡張機能のエラー
編集がCAPTCHAを必要な場合、次のようなエラーが表示されます: 大抵の場合、you won't get a math 数学のCAPTCHAを得られず、( フィールドの)画像へのURLになります. CAPTCHAを解決したとき、リクエストを再試行して下さい(この場合は で).

Other extensions that use the APIEditBeforeSaveフックを使う別のフックは通常のエラーフォーマットで説明されたどちらかのフォーマットを使うとエラーを返すことがあります.

起こり得るエラー
通常のものに加えて以下のエラーがあります:
 * code: notitle
 * info: titleパラメータを設定しなけばなりません
 * code: notext
 * info: textパラメータを設定しなければなりません
 * code: notoken
 * info: tokenパラメータを設定しなければなりません
 * code: invalidsection
 * info: sectionパラメータは整数もしくは'new'に設定しなければなりません
 * code: protectedtitle
 * info: このタイトルは作ることができないように保護されています
 * code: cantcreate
 * info: 新しいページを作るパーミッションを持っていません
 * code: cantcreate-anon
 * info: 匿名ユーザは新しいページを作ることができません
 * code: articleexists
 * info: 作ろうとした記事は既に作れたものです
 * code: noimageredirect-anon
 * info: 匿名ユーザは画像のリダイレクトを作ることができません
 * code: noimageredirect
 * info: 画像のリダイレクトを作るパーミッションを持っていません
 * code: spamdetected
 * info: スパムのフラグメント(断片)が含まれているので、編集が拒否されました: ``wikitext ''
 * code: filtered
 * info: フィルタコールバック関数が編集を拒否しました
 * code: contenttoobig
 * info: あなたが提供した内容はbytesバイトの記事の制限を越えます
 * code: noedit-anon
 * info: 匿名ユーザはページを編集できません
 * code: noedit
 * info: ページを編集するパーミッションを持っていません.
 * code: pagedeleted
 * info: タイムスタンプを取得した後でページは削除されました
 * code: emptypage
 * info: 新しい、空のページを作ることは許可されてません
 * code: emptynewsection
 * info: Creating empty new sections is not possible.
 * code: editconflict
 * info: 編集の衝突が検出されました
 * code: revwrongpage
 * info: rrevid is not a revision of ``pagename ''
 * Thrown if an invalid revid is given for  or
 * code: undo-failure
 * info: Undo failed due to conflicting intermediate edits
 * code: missingtitle
 * (see above nocreate parameter)

Editing via Ajax
Below is sample code for editing a page via an Ajax request:

Large texts
When using texts over 8000 characters, use "multipart/form-data" as it does not require escaping and will be significantly smaller than its urlencoded counterpart. Multipart has roughly 160 bytes of overhead for each parameter, so for seven parameters that's ~1.1kb overhead. Example: POST http://en.wikipedia.org/w/api.php HTTP/1.1 User-Agent: Bot Framework Content-Type: multipart/form-data; boundary=---8ce61ec834cf268 Host: en.wikipedia.org Cookie: Content-Length: 1348 Accept-Encoding: gzip Connection: Keep-Alive

-8ce61ec834cf268 Content-Disposition: form-data; name="action"

edit -8ce61ec834cf268 Content-Disposition: form-data; name="title" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit

Title here -8ce61ec834cf268 Content-Disposition: form-data; name="text" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit

Text here -8ce61ec834cf268 Content-Disposition: form-data; name="summary" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit

Summary -8ce61ec834cf268 Content-Disposition: form-data; name="token"

1f287ba00a908e9622045e7b18ffa352+\ -8ce61ec834cf268 Content-Disposition: form-data; name="assert"

user -8ce61ec834cf268 Content-Disposition: form-data; name="format"

xml -8ce61ec834cf268--