Используя пользователя с правами администратора, я создал выделенного пользователя для владения ботом; Я добавил этого бота в группу «Боты». С этим пользователем я вошел в систему и создал BotPassword для своего приложения и предоставил ему каждое возможное разрешение , которое может иметь бот.
У меня есть следующие параметры конфигурации, определенные в моем LocalSettings.php
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['bot']['read'] = true;
Из моего приложения я могу успешно войти в систему, используя Login API - после получения токенов:
Вход в систему
{
"login": {
"result":"Success",
"lguserid":11,
"lgusername":"botuser@example.org"
}
}
Однако для запроса страницы используются следующие параметры:
ArrayList<BasicNameValuePair> queryParameters = new ArrayList<>();
queryParameters.add(new BasicNameValuePair("action", "query"));
queryParameters.add(new BasicNameValuePair("prop", "revisions"));
queryParameters.add(new BasicNameValuePair("rvprop", "content"));
queryParameters.add(new BasicNameValuePair("format", "json"));
queryParameters.add(new BasicNameValuePair("formatversion", "2"));
queryParameters.add(new BasicNameValuePair("rvslots", "main"));
queryParameters.add(new BasicNameValuePair("titles", pageName));
Я получаю ошибку:
{
"error": {
"code":"readapidenied",
"info":"You need read permission to use this module.",
"docref":"See https://wiki.example.org/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes."
}
}
Если я даю глобальные разрешения на чтение в LocalSettings,
$wgGroupPermissions['*']['read'] = true;
Тогда мой бот-пользователь сможет загрузить страницы без ошибок -
<Ч />
Как я могу предоставить разрешения этому боту, чтобы я мог запрашивать содержимое страницы, не получая ошибку readapidenied , сохраняя при этом свою вики закрытую? Является ли учетная запись BotPassword в разных группах по сравнению с основным пользователем? Если так, как я могу изменить группы бота?
Я использую MediaWiki: 1.32.0
на PHP: 7.2.16
и использую ImapAuthorization для входа в систему пользователя.