Почему якобы федеративные через ActivityPub темы Discourse недоступны из внешних AP-клиентов?

Пример

Если я введу https://meta.discourse.org/t/uris-to-the-origin-of-a-thread-that-has-since-been-merged-should-503-to-the-merged-comment/342417?u=rokejulianlockhart (или https://meta.discourse.org/ap/object/bc8f042ccca5ef56734c5f2460aa45cc) [1] в mastodon.social/search, то получаю ошибку 404: [2] [3]

Если это не проблема Discourse, я обращусь с этим в Mastodon. Однако большинство других платформ AP, которые я пробовал (и от которых ожидал, что они будут работать), работают корректно.


  1. https://meta.discourse.org/t/uris-to-the-origin-of-a-thread-that-has-since-been-merged-should-503-to-the-merged-comment/342417?u=rokejulianlockhart ↩︎

  2. search?q=https%3A%2F%2Fmeta.discourse.org%2Fap%2Fobject%2Fbc8f042ccca5ef56734c5f2460aa45cc ↩︎

  3. search?q=https%3A%2F%2Fmeta.discourse.org%2Ft%2Furis-to-the-origin-of-a-thread-that-has-since-been-merged-should-503-to-the-merged-comment%2F342417%3Fu%3Drokejulianlockhart ↩︎

1 лайк

Мне тоже не хватает этого. Без этого взаимодействовать с федеративными постами сложно или невозможно, если они еще не появились в вашей ленте.

@rokejulianlockhart, просто интересно: пробовали ли вы работать с URL-адресами экземпляров WordPress, использующими плагин WP ActivityPub?

1 лайк

Что, черт возьми, здесь произошло? Я никогда не писал так, как ниже:

RokeJulianLockhart:

Обсудите это на нашем форуме.

...и кто-то разнес мой разметку кувалдой.

1 лайк

О! Теперь они федерированы! Я не публиковал этот комментарий здесь. [1] У них просто федерация работает со сбоями:

  1. Форматирование не сохраняется.

  2. Я могу лайкать свои собственные посты.

    Это отдельная учётная запись, так как она зарегистрирована на другом домене.

@icaria36, нет. Вы знаете какие-нибудь?


  1. socialhub.activitypub.rocks/t/5123/3 ↩︎

Я считаю, что это сайт на WordPress, и я только что протестировал его на недавней статье: действительно, я смог найти ссылку в Mastodon: Nature Holds Awe, Man – NHAM Mixtape 11 – NHAM

@icaria36, я так не думаю. В Discourse есть нативная интеграция с AP.

@rokejulianlockhart Касательно вашего замечания, которое вы высказали при создании этой темы, между тем ссылка https://meta.discourse.org/t/why-are-supposedly-activitypub-federated-discourse-threads-inaccessible-via-external-ap-clients/356997 не находится в Mastodon.

1 лайк

@icaria36, это, скорее всего, ошибка Mastodon, так как Discourse обеспечивает федерацию:

1 лайк

github.com/mastodon/mastodon/discussions/34600#discussioncomment-13031935 утверждает:

Плагин Discourse AP делает объекты ActivityPub доступными, если вы нажмёте на зелёный логотип ActivityPub и затем кнопку «Note», чтобы скопировать URL: Why are supposedly ActivityPub-federated Discourse threads inaccessible via external AP clients? - #9 by rokejulianlockhart - Bug - Discourse Meta

Discourse AP должен каким-то образом связывать ссылку url с id, предпочтительно через редирект при запросах с правильным заголовком согласования содержимого Accept.

Следовательно, я пока поставлю этому метку bug. (Не могу. Слишком старая запись.)

Но URL-адреса, предоставляемые иконкой «Заметки», не дают никаких результатов при вставке, например, в mastodon.social/search.

Проблема не решена.

1 лайк

@icaria36, пожалуйста, прокомментируйте это в обсуждении на GitHub. Когда кто-то другой оспаривает ответ, это придает ему больше авторитета, чем если бы я выступал в качестве посредника.

1 лайк

Похоже на это:

1 лайк

Что ж, нет, похоже, что это всё-таки ошибка в Discourse: Posts from Discourse do not resolve via the Search API · Issue #34632 · mastodon/mastodon · GitHub

Проведя дополнительное расследование, обнаружено, что Mastodon запрашивает ресурс со следующим заголовком Accept:

Accept: application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams", text/html;q=0.1

Запрос к Discourse с таким заголовком приводит к ответу HTTP 400.

Если исключить text/html;q=0.1, возвращается объект ActivityStreams. Похоже, это ошибка в Discourse, который возвращает 400 всякий раз, когда text/html входит в список принимаемых типов…

1 лайк

@rokejulianlockhart или модератор, пожалуйста, удалите «Решение» и переместите эту тему в bug (или создайте новый отчёт об ошибке) на основе оценки Mastodon: Posts from Discourse do not resolve via the Search API · Issue #34632 · mastodon/mastodon · GitHub.

2 лайка

Я не уверен, что это ошибка в Discourse. Я ответил на эту проблему в Mastodon. Дублирую здесь для удобства:

Мы возвращаем 400 в этом сценарии, потому что спецификация ActivityPub кажется, требует этого.

POST-запросы (например, в почтовый ящик) ДОЛЖНЫ выполняться с Content-Type: application/ld+json; profile=“ActivityStreams 2.0 Terms”, а GET-запросы (см. также 3.2 Получение объектов) — с заголовком Accept: application/ld+json; profile=“ActivityStreams 2.0 Terms

@ClearlyClaire Нужно ли добавлять text/html;q=0.1 в заголовок Accept?

2 лайка

Это будет решено в ближайшее время. Подробнее:

3 лайка