gpt4 book ai didi

javascript - 如何使用维基百科 API 在浏览器 javascript 上编辑页面?

转载 作者:行者123 更新时间:2023-11-30 09:36:28 31 4
gpt4 key购买 nike

该脚本旨在注入(inject)维基百科站点。它将使用用户的登录凭据发布到编辑 API。

这是我的尝试:

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')

回复说:

Some parts of the edit form did not reach the server; double-check that your edits are intact and try again.

最佳答案

使用the MediaWiki edit API编辑页面。不要直接发布到 ?action=edit;该 URI 用于交互式客户端。

MediaWiki API 文档包含一个如何使用 Javascript 执行此操作的示例,我在下面复制了该示例:

function addNewSection( summary, content, editToken ) {
$.ajax({
url: mw.util.wikiScript( 'api' ),
data: {
format: 'json',
action: 'edit',
title: mw.config.get( 'wgPageName' ),
section: 'new',
summary: summary,
text: content,
token: editToken
},
dataType: 'json',
type: 'POST',
success: function( data ) {
if ( data && data.edit && data.edit.result == 'Success' ) {
window.location.reload(); // reload page if edit was successful
} else if ( data && data.error ) {
alert( 'Error: API returned error code "' + data.error.code + '": ' + data.error.info );
} else {
alert( 'Error: Unknown result from API.' );
}
},
error: function( xhr ) {
alert( 'Error: Request failed.' );
}
});
}

关于javascript - 如何使用维基百科 API 在浏览器 javascript 上编辑页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43302474/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com