該腳本旨在被注入維基百科網站。它將使用用戶的登錄憑證發佈到編輯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')
迴應說:
編輯表單的某些部分沒有到達服務器;請仔細檢查 您的編輯是否完整,然後重試。
您是否包含編輯維基百科頁面時通常發送的隱藏字段?比較使用腳本和常規維基百科時,chrome日誌到「網絡」選項卡時是否發送相同的字段? –