Теперь, когда появился API-вызов для Merge Users, как его вызвать?

Привет,

Вчера я создал тему (теперь закрытую) о программном вызове плагина Merge Users, и Рафаэль любезно сослался на примечания к выпуску, где упоминается, что у плагина теперь есть графический интерфейс (Discourse 2.5.0.beta3 Release Notes). К сожалению, мои навыки работы с API Discourse не позволяют мне преобразовать эту информацию в вызов API. Нам нужно будет выполнять это действие из нашего приложения довольно регулярно. Не могли бы вы мне помочь?

Заранее спасибо,

Марк Пемберн
Blue Ocean Ideas

Кнопка отображается в нижней части страницы администрирования пользователя.

image

Если вы откроете инструменты разработчика браузера во время работы, вы увидите запрос, который необходимо выполнить.

Привет, Кейн,

Спасибо за подсказку! Мне потребовалось некоторое время, чтобы создать пользователей в моей тестовой среде Discourse, но сегодня мне это удалось. Я использовал информацию из панели Network в инструментах разработчика и попытался воспроизвести запрос через Postman. Вот значения:

Метод: POST
Конечная точка: https://my-discourse-sandbox/admin/users/{ID исходного пользователя}/merge.json

Заголовки:

Content-Type: multipart/form-data
Accept: application/json

Параметры:

Api-Key: {создать через интерфейс}
Api-Username: system
context: /admin/users/{ID исходного пользователя}/{имя пользователя источника}
target_username: {целевое имя пользователя}

Ответ был следующим:

    {
        "errors": [
            "Запрошенный URL или ресурс не найден."
        ],
        "error_type": "not_found"
    }

Есть ли у вас идеи, что я делаю не так?

На первый взгляд всё выглядит правильно. Вы проверили, что значение target_username существует?

Кейн,

Да, и исходный, и целевой пользователи являются активными. Если я удалю заголовки, я получу HTML-страницу с сообщением «Упс! Страница не существует или является закрытой». Часть «страница не существует» понятна в контексте ошибки 404, но я не уверен, что означает «закрытая» в данном случае.

Марк

@mpemburn, у вас что-то получилось с этим?

Я перемещаю некоторые рассылки на экземпляр Discourse. Поскольку многие люди использовали разные адреса электронной почты, при переносе создаётся несколько промежуточных пользователей на одного реального человека. Я хотел бы автоматизировать слияние пользователей через API.