ActivityPub

한국 마스토돈 연합위키
Sftblw (토론 | 기여)님의 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 형태로 받아볼 수 있습니다.

개발자용 참고 링크