Article 모드에서 비라틴 문자 사용자 이름과 관련된 문제가 발생할 것으로 보입니다. 사용자 인코딩이 필요한 것 같습니다.
@angus @infodesk@oxygen.offdem.net 가 초기 게시물 이후 몇 건을 게시했을 것으로 생각되지만, Discourse에서 아무 오류 메시지도 없이 내 타임라인에 전혀 표시되지 않습니다.
며칠 전 게시 전에 공유 초안을 사용했는데, 메시지가 Mastodon에 표시되지 않았습니다. 그래서 공유 초안 관련 버그 때문이라고 생각했고, 오늘은 새 토픽에 직접 게시했습니다. 하지만 게시물이 13:18 CET에 Fediverse로 전송되어야 했음에도 아무것도 표시되지 않습니다 – 그래서 부스트(재게시)도 불가능합니다. ![]()
플러그인 버전
eee34494
오류 로그
드디어 나타났습니다: https://oxygen.offdem.net/logs/show/c6449d732e8e9b866bf07935e8132744
(최근 게시물을 다시 전송하는 수정이 있다면 정말 좋을 것 같습니다)
최신 공지사항
카테고리 설정
ActivityPub 플러그인에는 대부분의 문제를 파악할 수 있는 견고한 로깅 시스템이 있습니다. 먼저, 해당 플러그인에 대해 상세 로깅(verbose logging)이 활성화되어 있는지 확인하세요.
해당 게시물의 게시 상태는 어떻게 되나요? (즉, 게시물에서 AP 아이콘을 클릭할 때 나타나는 모달의 스크린샷을 공유해 주세요)
게시 상태가 “게시됨(published)”(즉, 아이콘이 녹색임)인 것으로 추정합니다. 상세 로깅이 켜져 있었다면, 이 게시물이 게시될 때 로그에 기록된 내용을 공유해 주실 수 있을까요? (무언가는 로그에 기록되었을 것입니다.)
감사합니다 @angus, 에러 로그는 이전 게시글에 있습니다:
게시글의 상태는 다음과 같습니다:
토픽은 여기서 확인하실 수 있습니다: O₄FFDEM programme is out! - Announcements - OFFDEM
자세한 정보를 알려주셔서 감사합니다.
인스턴스에서 로그를 볼 수 있는 권한은 관리자만 있습니다. ![]()
관련 로그를 개인 메시지로 복사해서 보내주실 수 있을까요? 감사합니다.
안녕하세요 여러분, 이 개념을 현재까지 발전시키기 위해 훌륭한 작업을 해주셔서 진심으로 감사드립니다!! 저는 수년 전부터 디스커스에서 연동(federation)을 구현하기 위한 논의들을 추적해 왔는데, 이렇게 크게 진전이 이루어진 것을 보니 기쁩니다.
저는 마스토돈 계정에서 제 디스커스 카테고리를 팔로우함으로써 제 디스커스 카테고리를 성공적으로 연동했습니다. 이제 제 카테고리에서 생성되는 새 주제(토픽)를 마스토돈 계정에서 열람할 수 있습니다.
다만, 연동된 디스커스 주제에 대한 마스토돈의 답변을 디스커스에서는 받지 못하는 것 같습니다. 하지만 제가 팔로우하는 마스토돈 계정의 최상위 투트(Toot)는 새 주제로 정상적으로 표시되고 있습니다. 이것이 현재 예상되는 동작 방식인가요?
이 스레드를 읽었지만, 주제에 대한 답변을 연동하는 것에 대해 명시적으로 언급된 내용은 보지 못한 것 같습니다.
제 카테고리의 ActivityPub 설정에 대한 스크린샷을 첨부합니다.
이것이 카테고리의 보안 설정과 관련이 있을까요? 현재는 모든 사용자가 주제를 볼 수 있지만, 관리자만 주제 생성과 답변이 가능하도록 설정되어 있습니다.
감사합니다!
안녕하세요 @rsmithlal, 플러그인을 시도해 주시고, 자세한 피드백을 남겨 주셔서 감사합니다!
네, 그래서 투트(toots)에 대한 답글이 가져오지지 않는 것입니다. 제 이해가 맞는지 확인차 여쭤보겠습니다:
- 사용자가 Discourse에서 Discourse 토픽에 답글을 달 수 없다.
- 사용자가 Mastodon에서 Discourse 토픽에 답글을 달 수 있다.
이렇게 이해하면 될까요? 맞다면, 현재 이 기능은 지원되지 않습니다. 다만, 카테고리 보안 설정이 ActivityPub와 어떻게 상호작용해야 하는지 아직 완전히 명확하지 않다는 지적은 이해합니다. 다음 작업 단계에서 이 부분을 더 명확하게 다룰 수 있도록 하겠습니다.
@angus 님, 그렇다면 연동(federated)된 Discourse 주제에 대한 투트 답글은 올바른 설정이 되어 있다면 연동된 주제 내에서 Discourse 답글로 표시되어야 한다는 뜻인가요?
예를 들어:
- 제 Discourse 인스턴스인 Discourse1.server에서 연동 카테고리인 **“My Federated Category”**에 새로운 주제인 **“My First Federated Topic”**을 생성한다고 가정해 보겠습니다.
- 이 새로운 주제가 연동되어 fed-cat@discourse1.server의 투트로 나타나며, **“My Federated Category, fed-cat@discourse1.server”**를 팔로우하는 제 Mastodon 계정인 rob@mastodon1.server의 피드에서 확인됩니다.
- Discourse1.server가 원래 연동한 **“My First Federated Topic”**의 내용을 포함하는 연동된 노트에 대해 Mastodon1.server에서 **답글 투트(reply toot)**를 생성합니다.
이 경우, 이 연동된 Discourse 주제에 대한 제 Mastodon 투트 답글이 Discourse1.server의 원래 “My First Federated Topic” 주제에서 답글로 표시되길 기대합니다.
제게는 이것이 이상적인 경우이지만, 아직까지 이를 달성하지 못했습니다. 현재 이것이 가능한가요?
가능하다면, 이를 예상대로 작동하게 허용하는 설정 항목은 무엇인가요?
감사합니다. 제 설명이 명확했기를 바랍니다!
메인 카테고리에 ActivePub가 활성화되어 있고, 서브 카테고리에도 ActivePub를 활성화했습니다. 하지만 서브 카테고리를 통해 follows 버튼을 클릭하여 누군가를 팔로우하려고 하면 지루한 “not found” 또는 “nor allowed” 오류 페이지가 표시됩니다. 메인 카테고리에서는 문제가 없습니다.
설정에서 특별하거나 이상한 작업을 한 것은 없습니다.
기대하는 동작이 맞는 건가요, 아니면 버그인가요?
@rsmithlal 네, 말씀하신 내용은 ‘Full Topic’ 게시 유형이 의도대로 작동하는 방식입니다. 해야 할 변경 사항은 일반 사용자가 해당 카테고리에서 답글을 달 수 있도록 허용하는 것입니다(카테고리 접근 설정에서). 현재 작동하지 않는 이유는 답글을 관리자만 가능하도록 제한했기 때문입니다. ActivityPub를 통해 가져온 답글은 이러한 제한을 우회할 수 없습니다.
일반적으로 하위 카테고리는 상위 카테고리의 설정을 상속하지 않으며, ActivityPub도在这方面에서 예외가 아닙니다. ActivityPub 설정은 카테고리별로 적용되며 상속 기능은 아직 없습니다. 다만, 말씀하신 문제는 UX(사용자 경험) 문제이며 곧 해결할 예정입니다. 즉, 특정 하위 카테고리를 보고 있을 때는 ActivityPub 컨트롤이 표시되지 않아야 합니다.
@angus 님, 감사합니다. 그 방법을 시도해 보겠습니다. 정말 기대됩니다!!
처음에는 테스트용 카테고리와 주제였기 때문에 답변을 제한하고 있었습니다. 처음에는 관리자만 볼 수 있도록 비공개로 설정해 두었는데, ActivityPub가 전혀 활성화되지 않아 모든 사용자에게 공개해야 했습니다. 이번 교류를 통해 많은 것을 배울 수 있었습니다.
@Jagster 설명해 주신 문제는 이 PR이 병합되면 수정됩니다. 보고해 주셔서 감사합니다.
문제
안녕하세요, agora.eXO.cat에서 이 플러그인을 테스트하고 있는데 작동하지 않습니다 (Discourse 웹에서 상태가 "Note was not published via ActivityPub"라고 표시되고, 다른 Fediverse 앱에서는 액터를 찾을 수 없습니다).
특별히 주의해야 할 점이 있을까요? 문서를 확인해 보았지만 따라야 할 특별한 문제 해결 방법을 찾을 수 없었고, 로그(아래 참조)도 더 이상 도움을 주지 못합니다 :-(.
설정
플러그인 버전: 79da1c2
Fediverse에 게시하기를 원하는 공개 하위 카테고리를 사용하고 있습니다.
설정은 단순하며, 다음을 제외하고는 변경된 것이 없습니다:
- 테스트를 위해 스케줄 시간을 1분으로 설정
- 카테고리에 대한 액터 이름과 표시 이름 선택
시도해 본 몇 가지 사항:
- "activity pub object logging"을 활성화하고 로그 확인
- 오류를 발생시킨 줄을 패치하여 제거함. 이 줄은 “달걀과 닭” 같은 문제를 일으켰기 때문입니다(“수신자가 없어 게시물을 예약할 수 없을 수 있음, 게시물이 생성될 때까지 액터를 생성하지 않음”)
테스트한 패치
> ./launcher enter app
> sed -i.orig -E 's!^(.*no recip.*)$!#\1!' /var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb
> ./launcher restart app
- 해당 패치가 작동하지 않자 패치를 제거함
- 어딘가에 “특수” 문자가 없도록 카테고리를 삭제하고 다시 생성함 (실제 단어는 exofàsia이며, eXOfà시아로 표기하기를 원함)
- 카테고리를 다시 생성할 때
Article(원하는 값) 대신Note(기본값) 사용
로그
로그에서 확인되는 내용
Message
[Discourse Activity Pub] https://agora.exo.cat/ap/actor/31cb67a1093eca932caaf1e764814bde failed to schedule https://agora.exo.cat/ap/activity/803be329c95f67b5ab62d43c7c61f6f3 for delivery: no recipients
Backtrace
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:93:in `log_failure'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:35:in `can_deliver?'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:13:in `perform'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:27:in `perform'
/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:140:in `activity_pub_deliver_activity'
/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:38:in `perform_activity_pub_activity'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:473:in `block (2 levels) in activate!'
/var/www/discourse/lib/plugin/instance.rb:341:in `public_send'
/var/www/discourse/lib/plugin/instance.rb:341:in `block (2 levels) in add_to_class'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:654:in `block (2 levels) in activate!'
Env
HTTP HOSTS: agora.exo.cat
인터페이스에서 다시 게시할 때 오류가 일관되게 발생함
Message
[Discourse Activity Pub] https://agora.exo.cat/ap/actor/31cb67a1093eca932caaf1e764814bde failed to schedule https://agora.exo.cat/ap/activity/30d34f8b38be0d2d5bc997fd4147c5b2 for delivery: no recipients
Backtrace
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:93:in `log_failure'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:35:in `can_deliver?'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:13:in `perform'
/var/www/discourse/plugins/discourse-activity-pub/lib/discourse_activity_pub/delivery_handler.rb:27:in `perform'
/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:140:in `activity_pub_deliver_activity'
/var/www/discourse/plugins/discourse-activity-pub/app/models/concerns/discourse_activity_pub/ap/model_callbacks.rb:38:in `perform_activity_pub_activity'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:473:in `block (2 levels) in activate!'
/var/www/discourse/lib/plugin/instance.rb:341:in `public_send'
/var/www/discourse/lib/plugin/instance.rb:341:in `block (2 levels) in add_to_class'
/var/www/discourse/plugins/discourse-activity-pub/plugin.rb:481:in `block (2 levels) in activate!'
Env
HTTP HOSTS: agora.exo.cat
Webfinger
그리고 Webfinger가 반환하는 내용은 다음과 같습니다:
> curl -L 'https://agora.eXO.cat/.well-known/webfinger?resource=acct:exofasia@agora.exo.cat'
{"subject":"acct:exofasia@agora.exo.cat","aliases":["https://agora.exo.cat/c/exo/exofasia/33"],"links":[{"rel":"self","type":"application/activity+json","href":"https://agora.exo.cat/ap/actor/31cb67a1093eca932caaf1e764814bde"}]}
안녕하세요 @evilham, 현재 보고 계신 메시지는 Actor에 팔로워가 없을 때(활성이 게시되지 않음) 기록됩니다. 해당 Actor를 팔로우하는 사람이 있나요?
현재 팔로우할 수 있는 유일한 Actor는 Category Actor(즉, Group Actor)입니다. 이 Actor는 카테고리에서 ActivityPub를 활성화하는 즉시 생성되므로(따라서 계란-닭 문제를 일으키지 않음) 팔로우할 수 있습니다. 현재는 사용자 Actor(즉, Persons)를 팔로우할 수 없습니다.
여러분, 문제가 정확히 액터(Actor)를 찾을 수 없다는 점입니다 (직접 시도해 보세요: exofasia@agora.exo.cat):
어젯밤 여기서 좀 더 자세히 확인해 보니, 이 문제에 부딪힌 것이 우리가 처음은 아닙니다:
그래서, 아마도 로그 항목은 완전히 무관할 수도 있지만, 우리가 가진 유일한 로그 항목이기에 >,<, 따라가 볼 수 있는 유일한 단서였습니다.
게시물 자체는 페디버스에서 연결이 끊겨 있다는 아이콘과 함께 다음과 같은 텍스트가 표시됩니다:
게시물 게시를 예약하는 모든 시도는 우리가 언급한 로그가 기록될 뿐, 다른 것은 발생하지 않습니다.
카테고리는 올바르게 구성된 것으로 주장됩니다 (언급했듯이 아무것도 변경되지 않았습니다):
그리고 카테고리는 완전히 공개 상태입니다.
방금 로컬 인스턴스에서 해당 액터를 성공적으로 팔로우했습니다.
성공적으로 찾았습니다.
그 후 팔로우를 성공적으로 보내고 수락(Accept) 응답을 받았습니다.
이제 인스턴스에서 ‘팔로워(Followers)’ 목록을 새로고침하면 general@angus.ngrok.io에서 온 팔로우 요청을 볼 수 있을 것입니다.
현재 겪고 계신 문제는 HTTP 서명을 필수로 설정해 두셨기 때문일 것으로 추측됩니다.
그리고 팔로우에 사용하고 계신 클라이언트가 HTTP 서명을 지원하지 않거나 적절한 HTTP 서명을 보내지 않기 때문일 수 있습니다. @Lhc_fl 님이 겪었던 문제도 아마 이것 때문이었을 것입니다.
오, 꽤 흥미롭네요. 팔로우가 실제로 나타나는 걸 확인했습니다!
맞습니다. 이것이 기본값이었기 때문에 필요한 부분만 최소한으로 변경했습니다.
우리는 여러 클라이언트를 시도해 보았으며, 주로 Mastodon과 Pleroma를 사용했습니다.
HTTP 서명이 필수라는 힌트를 따라 해당 설정을 비활성화(즉, 기본값을 변경)한 후, 이번에는 게시물을 다시 예약해 보았습니다. 그 결과 긍정적인 결과가 나왔습니다(차이가 나는 이유는 팔로워가 1명이기 때문일까요?):
한편, 적어도 Mastodon에서는 프로필을 검색할 때 여전히 404 오류가 표시되므로, 주요 목표(다른 Fediverse 앱에서 카테고리를 팔로우하는 것)는 아직 달성되지 않았습니다.
이를 용이하게 하기 위해 우리가 더 살펴볼 수 있는 부분이 있을까요?
아, 정말요. 이해가 안 되는데, 지난번 게시물 전에 서로 다른 두 개의 마스토돈 서버에서 시도해 봤거든요. 그중 하나는 이전에 한 번도 사용해 본 적이 없었고, 두 서버 모두에서 프로필에 404 오류가 발생했어요.
오후에 다시 확인해 보겠지만, 왜 이런 일관성 없는 표시가 나타나는지, 또는 우리가 시도해 볼 수 있는 방법에 대한 힌트가 있다면 알려주시면 좋겠습니다.










