Я пытаюсь использовать действие clientlogin для API MediaWiki, как показано ниже.
Когда я пытаюсь сделать запрос, как API говорит
/ wiki / api. php? Action = clientlogin & format = json & logintoken = {token} & username = {username} & пароль = {пароль}
Я получаю сообщение об ошибке, что logintoken должен быть в теле запроса. Это привело меня к результирующему коду ниже, но теперь возвращает ошибку, что logintoken должен быть установлен. Любая подсказка, почему это так?
Примечание: Я получил имя пользователя и пароль в другой функции, которая передается через карту входных данных.
async function requestLogin(loginToken: string, inputs: {[key:string]: string}) {
let loginRequest: string = "?action=clientlogin&format=json";
let loginData: {[key:string]: string} = {
'logintoken': loginToken
};
for (let key in inputs) {
// place the key/value into the request
loginData[key] = inputs[key];
}
console.log(loginData);
const login = bent(state.url, 'POST', 'json');
let loginResponse = await login(loginRequest, loginData);
if ("error" in loginResponse) {
console.log(loginResponse["error"]);
console.log(loginResponse["error"]["info"]);
} else {
// Successfully logged in :)
console.log(loginResponse);
}
}