Войдите в систему с BOT в частном WIKI, чтобы прочитать действие feedrecentchanges - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть частная вики-установка:

MediaWiki   1.34.0
PHP     7.2.27

с

$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createaccount'] = false;

в LocalSettings. php

Что я хотел бы сделать, это читать последние изменения через бота, чтобы отобразить " Recente Wiki news - проверьте их! " для моих пользователей, когда они войдут в другое веб-приложение.

Итак, следуя этот пример на официальной документации , сначала я создал пароль BOT.

Затем я пытаюсь позвонить:

https://mywiki.myhosting.com/api.php?action=query&meta=tokens&type=login&format=json

и получить ответ

{"error":{"code":"readapidenied","info":"You need read permission to use this module.","*":"See https://mywiki.myhosting.com/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."}}

Если я попробую ту же строку запроса в новой вкладке после входа в Вики (то есть - в браузере уже есть повар аутентификации ie), я получу ответ:

{"batchcomplete":"","query":{"tokens":{"logintoken":"0a0_some_token_letters_518+\\"}}}

Где я делаю неправильно?

В моем понимании, если я не получу этот первый токен, я не смогу сделать второй вход в систему, когда я должен использовать свое имя пользователя и пароль BOT, верно?

Любая помощь приветствуется.

1 Ответ

1 голос
/ 18 февраля 2020

Видимо, это ошибка, которая была исправлена ​​ всего за несколько дней go. В качестве обходного пути вы можете просто сделать запрос на вход без токена. Вы получите сообщение об ошибке, но в нем будет маркер. Этот рабочий процесс входа в систему устарел и будет в конечном итоге удален, но сейчас он работает.

...