"ActivityPub"의 두 판 사이의 차이

한국 마스토돈 연합위키
둘러보기로 가기 검색하러 가기
2번째 줄: 2번째 줄:
  
 
ActivityPub은 마스토돈 만의 것이 아니라, 일종의 표준안입니다. 그래서 마스토돈은 ActivityPub를 구현한 다른 SNS와도 통신할 수 있습니다.
 
ActivityPub은 마스토돈 만의 것이 아니라, 일종의 표준안입니다. 그래서 마스토돈은 ActivityPub를 구현한 다른 SNS와도 통신할 수 있습니다.
 +
 +
기본적인 사항은 동일하지만, 프로그램마다 지원하는 범위가 다르거나 커스텀 기능이 있는 경우가 많아 모든 기능이 호환되지는 않습니다.
  
 
== ActivityPub 을 지원하는 SNS 서버 소프트웨어들 ==
 
== ActivityPub 을 지원하는 SNS 서버 소프트웨어들 ==
29번째 줄: 31번째 줄:
 
* 주고받는 내용은 JSON-LD 입니다.
 
* 주고받는 내용은 JSON-LD 입니다.
 
* 사용자를 찾는 방법을 정의하지는 않습니다.
 
* 사용자를 찾는 방법을 정의하지는 않습니다.
** 시장 지배적인 구현체인 **마스토돈**이 WebFinger 라는 방법으로 사용자를 탐색하므로 마스토돈과 호환되려면 WebFinger도 구현해야 합니다.
+
** 시장 지배적인 구현체인 마스토돈이 WebFinger 라는 방법으로 사용자를 탐색하므로 마스토돈과 호환되려면 WebFinger도 구현해야 합니다.
*** WebFinger는 <pre>my_id@example.com</pre> 처럼 이메일과 같은 방식으로 사용자를 찾는 방법입니다.
+
** [[WebFinger]]는 <code>my_id@example.com</code> 처럼 이메일과 같은 방식으로 사용자를 찾는 방법입니다.
 +
 
 +
=== ActivityStreams 개체 형태로 보기 ===
 +
 
 +
실제 서비스중인 곳에서 어떤 형태로 글이나 사용자 등이 연합되는지 보면 이해하는 데 상당히 도움이 됩니다.
 +
 
 +
* [[마스토돈]]에서는 주소 끝에 ?format=json 을 넣으면 바로 JSON 형태로 게시글 등을 확인할 수 있습니다.
 +
* [[미스키]]에서는 HTTP Get 요청 시 헤더에 Accept: application/activity+json 을 넣으면 JSON 형태로 받아볼 수 있습니다.
  
 
=== 개발자용 참고 링크 ===
 
=== 개발자용 참고 링크 ===
 +
 +
* 스펙 문서
 +
** 공식
 +
*** TODO: 링크 찾아서 걸기
 +
** 번역
 +
*** [[https://github.com/beankuu/Activity-Vocabulary 액티비티-어휘 W3C 문서 비공식 한글 번역]]
 +
* 구현체 공식 호환성 보고
 +
** (영문) [[https://docs.joinmastodon.org/spec/activitypub/ 마스토돈의 ActivityPub 호환성 설명]]
 +
* 도움이 되는 글들
 +
** (영문) 마스토돈 공식 블로그의 간단한 호환 SNS 구현해보기 게시글 - 1, 2 (TODO: 링크 찾아서 걸기)
 +
** (영문) [[https://socialhub.activitypub.rocks/t/guide-for-new-activitypub-implementers/479 신규 ActivityPub 구현자를 위한 가이드 - socialhub.activitypub.rocks]]
 +
** (영문) [[https://flak.tedunangst.com/post/ActivityPub-as-it-has-been-understood ActivityPub as it has been understood]] - honk 개발자가 이해한 ActivityPub - 실제 구현체의 동작들도 다수 적혀있어 상당히 도움되는 자료입니다.

2020년 7월 2일 (목) 21:42 판

ActivityPub(액티비티펍)은 분산형 / 탈중앙형 소셜 네트워크를 위한 프로토콜입니다. 마스토돈에서는 A 인스턴스가 B 인스턴스와 서로 글, 팔로우 등의 여러 가지 정보를 주고받을 수 있습니다. 이 때 서로 대화하는 양식이 ActivityPub 입니다.

ActivityPub은 마스토돈 만의 것이 아니라, 일종의 표준안입니다. 그래서 마스토돈은 ActivityPub를 구현한 다른 SNS와도 통신할 수 있습니다.

기본적인 사항은 동일하지만, 프로그램마다 지원하는 범위가 다르거나 커스텀 기능이 있는 경우가 많아 모든 기능이 호환되지는 않습니다.

ActivityPub 을 지원하는 SNS 서버 소프트웨어들

관련 링크

프로그래머를 위한 설명

ActivityPub은 분산형 / 탈중앙형 SNS를 위한 서버 <-> 서버, 클라이언트 <-> 서버 간의 프로토콜입니다. 보통은 서버간의 프로토콜만 구현합니다.

주요 특징

  • ActivityPub은 ActivityStreams 2.0 을 기반으로 한 프로토콜입니다. 특히 실제 개체는 ActivityStreams Vocabulary 권고안에 나와있습니다.
  • 주고받는 내용은 JSON-LD 입니다.
  • 사용자를 찾는 방법을 정의하지는 않습니다.
    • 시장 지배적인 구현체인 마스토돈이 WebFinger 라는 방법으로 사용자를 탐색하므로 마스토돈과 호환되려면 WebFinger도 구현해야 합니다.
    • WebFingermy_id@example.com 처럼 이메일과 같은 방식으로 사용자를 찾는 방법입니다.

ActivityStreams 개체 형태로 보기

실제 서비스중인 곳에서 어떤 형태로 글이나 사용자 등이 연합되는지 보면 이해하는 데 상당히 도움이 됩니다.

  • 마스토돈에서는 주소 끝에 ?format=json 을 넣으면 바로 JSON 형태로 게시글 등을 확인할 수 있습니다.
  • 미스키에서는 HTTP Get 요청 시 헤더에 Accept: application/activity+json 을 넣으면 JSON 형태로 받아볼 수 있습니다.

개발자용 참고 링크