Какой scope нужен для доступа к {{localhost}}/posts.json?

Привет,

Я сгенерировал API-ключ, выданный администратором, с областями write, read и read lists. Однако при попытке использовать этот ключ (добавив его в заголовок Api-Key) для доступа к эндпоинту {{localhost}}/posts.json я получаю следующую ошибку:

    "errors": [
        "У вас нет прав для просмотра запрошенного ресурса. Имя пользователя API или ключ недействительны."
    ],
    "error_type": "invalid_access"
}

С другой стороны, генерация глобального ключа дает мне доступ к этому эндпоинту. Какая правильная (минимальная) область для чтения {{localhost}}/posts.json?

Я ещё не проверял это, но думаю, что то, что вы наблюдаете, — это ожидаемое поведение. Вы можете нажать на кнопку-якорь, отображаемую рядом с каждым разрешением API-ключа, чтобы увидеть, к каким путям это разрешение даёт доступ. Вы увидите, что разрешение read применяется только к маршрутам, начинающимся с /t. Разрешение read lists предоставляет доступ к спискам тем Discourse. Отдельного разрешения для доступа к /posts.json не существует, поэтому, похоже, вам придётся использовать глобальный ключ.

Интересно, имело бы смысл добавить /posts.json в разрешение read.

Привет, Саймон! Спасибо за ответ и объяснение. В моём случае мне нужно будет читать посты из /posts.json, но при этом я хочу быть как можно менее навязчивым и запросить только доступ только для чтения. Есть ли какое-то решение?

Если вы запрашиваете только публичные посты, вы, возможно, сможете сделать неаутентифицированный API-запрос к /posts.json. Если ваш сайт приватный или посты находятся в защищённых категориях, я думаю, что единственный способ получить эти посты в настоящее время — использовать глобальный API-ключ.

pr-welcome для новой области охвата или для добавления этого в read, я думаю.