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개의 좋아요

저도 이 기능이 필요합니다. 이 기능이 없으면, 이미 타임라인에 있는 경우가 아니면 연동된 게시글과 상호작용하기가 어렵거나 불가능합니다.

@roke_julian_lockhart, 궁금해서 여쭤봅니다. WP ActivityPub 플러그인을 사용하는 WordPress 인스턴스의 URL로 시도해 보셨나요?

1개의 좋아요

도대체 여기서는 무슨 일이 벌어진 거죠? 저는 이렇게 적어본 적이 없는데요:

RokeJulianLockhart:

이 문제를 우리 포럼에서 논의해 주세요.

...그런데 누군가가 제 마크업을 망치로 두들겨 부수어 놓았네요.

1개의 좋아요

아! 이제 연동(federated)이 되었네요! 제가 그 댓글을 여기에 쓴 게 아닙니다. [1] 연동 기능이 좀 깨져 있긴 합니다:

  1. 포맷이 유지되지 않습니다.

  2. 내 자신의 게시물에 좋아요를 누를 수 있습니다.

    다른 도메인에 등록되어 있어 별개의 사용자 계정입니다.

@icaria36, 아니요. 혹시 아시는 게 있나요?


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

이 사이트가 워드프레스로 만들어졌다고 생각하는데, 최근 게시물을 테스트해 보았더니 실제로 마스토돈에서 해당 URL을 찾을 수 있습니다: Nature Holds Awe, Man – NHAM Mixtape 11 – NHAM

@icaria36, 그렇게 생각하지 않습니다. Discourse에는 네이티브 AP 통합 기능이 있습니다.

@roke_julian_lockhart 주제를 만들 당시 말씀하신 대로, 그동안 https://meta.discourse.org/t/why-are-supposedly-activitypub-federated-discourse-threads-inaccessible-via-external-ap-clients/356997은 Mastodon에서 찾을 수 없습니다.

1개의 좋아요

@icaria36, Discourse가 이를 연동(federate)하고 있으므로 아마도 Mastodon 쪽의 문제일 것입니다:

1개의 좋아요

github.com/mastodon/mastodon/discussions/34600#discussioncomment-13031935에서 다음과 같이 언급하고 있습니다:

Discourse AP 플러그인은 녹색 ActivityPub 로고를 클릭한 후 “Note” 버튼을 눌러 URL을 복사하면 ActivityPub 객체를 사용할 수 있게 합니다: https://meta.discourse.org/ap/object/5874fad7df806caa1fe34c382c1d2991

Discourse AP는 urlid로 되돌아가도록 해야 하며, 가능하면 올바른 Accept 콘텐츠 협상 헤더를 가진 요청에 대해 리다이렉트를 통해 처리하는 것이 좋습니다.

따라서 이 문제를 일시적으로 #contribute:bug로 설정하겠습니다. (할 수 없습니다. 너무 오래되었습니다.)

하지만 “Notes” 아이콘에서 제공한 URL을 mastodon.social/search 등에 붙여넣어도 결과가 표시되지 않습니다.

문제가 해결되지 않았습니다.

1개의 좋아요

@icaria36, 해당 내용을 GitHub Discussion에 댓글로 남겨 주세요. 저 대신 다른 사람이 답변에 이의를 제기하는 것이, 제가 중재자 역할을 하는 것보다 더 신뢰를 줍니다.

1개의 좋아요

그렇게 보입니다:

https://github.com/mastodon/mastodon/issues/34632

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의 버그로 보이며, text/html이 허용되는 타입의 일부인 경우 항상 400을 반환하는 것 같습니다…

1개의 좋아요

@roke_julian_lockhart 또는 관리자분, "Solution"을 제거해 주시겠어요? 그리고 Posts from Discourse do not resolve via the Search API · Issue #34632 · mastodon/mastodon · GitHub Mastodon 평가에 따라 이 주제를 #contribute:bug로 이동하거나(또는 새로운 버그 리포트를 생성해 주세요).

2개의 좋아요

이것이 Discourse의 버그인지 확실하지 않습니다. Mastodon의 해당 이슈에 답변을 남겼습니다. 편의를 위해 여기에도 함께 공유합니다:

해당 시나리오에서 400을 반환하는 이유는 ActivityPub 사양이 이를 요구하는 것으로 보입니다.

인박스(inbox)에 대한 POST 요청은 Content-Type이 application/ld+json; profile="https://www.w3.org/ns/activitystreams"여야 하며, GET 요청(또한 3.2 개체 검색 참조)은 Accept 헤더에 application/ld+json; profile="https://www.w3.org/ns/activitystreams"를 포함해야 합니다.

@ClearlyClaire Accept 헤더에 text/html;q=0.1을 추가할 필요가 있을까요?

2개의 좋아요

이 문제는 곧 해결될 예정입니다. 추가 정보:

3개의 좋아요