Я разделяю сайт на два отдельных сайта, используя метод мультисайта, и снова бьюсь головой об API.
Теперь я пытаюсь деактивировать пользователей из списка 1 (сайт по умолчанию) в списке 2 (второй сайт).
Я уже деактивировал пользователей в списке 2 из списка 1; всё, что я изменил в своём PHP-скрипте, это сгенерировал новый API-ключ на втором сайте, вставил его в вызов CURL, и получаю ошибки Invalid_Access.
Вот обрезанный вызов (без большей части API-ключа), который действителен только для этого пользователя и имеет глобальный доступ.
curl -X PUT -H “Content-Type: multipart/form-data;” -H “Api-Key: a23…” -H “Api-Username: nolan” “https://nu-sports.tssi.com/admin/users/4/deactivate.json/”
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 98 0 98 0 0 212 0 --:–:-- --:–:-- --:–:-- 4454
{“errors”:[“You are not permitted to view the requested resource.”],“error_type”:“invalid_access”}
Насколько я могу судить, нет возможности сузить область действия API-ключа так, чтобы он обрабатывал деактивации; это не один из доступных вариантов. Однако глобальный ключ всё равно не работает. (На мой взгляд, API нуждаются в доработке.)
Я не знаю, где находится код deactivate.json; поиск на моём сервере не находит его, значит, это, видимо, не отдельный файл. Я задаюсь вопросом, не связано ли это с чем-то специфичным для второго сайта, что настроено неверно, поскольку на сайте по умолчанию всё работало отлично.
Это не первая проблема, которую я обнаружил на вторых сайтах, хотя я не уверен, что кто-либо когда-либо регистрировал первую из них как ошибку. Она связана с кодом в конфигурационном файле nginx, который проверяет, совпадает ли доменное имя в URL с именем по умолчанию. Я просто закомментировываю эти строки кода каждый раз при пересборке. Я сообщал об этой проблеме в этом посте: