このスクリプトは、Wikipediaのサイトに挿入されることを意図しています。ユーザーのログイン認証情報を使用して編集APIに投稿します。Wikipedia APIを使用してブラウザのJavaScriptを編集するには?
これは私の試みです:
function getEditToken(){
return fetch(
'https://en.wikipedia.org/w/api.php?action=query&meta=tokens&format=json',
{credentials: 'include'}
)
.then(r => r.json())
.then(r => r.query.tokens.csrftoken)
}
function writeRevision(title, text, summary){
var url = `https://en.wikipedia.org/w/index.php?action=edit`
var formData = new FormData()
formData.append('title', title)
formData.append('text', text)
formData.append('summary', summary)
formData.append('contentmodel', 'wikitext')
var option = {
method: 'POST',
body: formData,
credentials: 'include',
}
return getEditToken()
.then(token => { formData.append('token', token); console.log(token) })
.then(x => fetch(url, option))
.then(r => r.text())
.then(console.log)
.catch(e => console.log(e))
}
writeRevision('User:eeeeeeeee/draft_1', 'foo wikitext', 'foo summary')
応答は言う:編集フォームの
いくつかの部分がサーバに到達しませんでした。 を編集して再度編集してください。
ウィキペディアのページを編集するときに通常送信される隠しフィールドを含めますか?あなたのスクリプトと定期的なウィキペディアを使用しているときにクロムが "ネットワーク"タブにログインするのを比較すると、同じフィールドが送信されますか? –