Language: Traditional Chinese (Taiwan)
2023-07-29, 10:00–10:30 (Asia/Taipei), RB 105
封閉而中心化的社交媒體是當代社會的嚴重問題,我們的個人資料、我們的關係網絡都被壟斷在一些不可信任的大型商業公司手中。但這一趨勢有打破的可能,在馬斯克掌控Twitter後許多人選擇的新社交站點——長毛象Mastodon——就是一個優秀的去中心化開源方案。而長毛象如何實現去中心,背靠的是ActivityPub協議。甚至,依賴該協議,長毛象Mastodon還可以和其它實作了該協議的個人部落格、音樂分享工具、論壇、影片分享網站產生社交連結,具有形成一個聯邦宇宙Fediverse的潛力。
這次演講內容就將帶你走進ActivityPub的世界。內容涵蓋兩個主要部分:(1)ActivityPub協議的基本概念、核心元素。(2)用Python或任何你熟悉的程式語言實作基礎方法,讓你可以擁有基本的社交帳號,可以進行發文、關注,讓你連結到聯邦宇宙!
近十年,社交媒體依靠着互聯網的開放、連結優勢迅速擴張,成為現代生活中不可或缺的一部分。雖然大部分社交平台提供了便捷的互動方式,但它們幾乎全部都是封閉且中心化的。你無法完整下載自己的個人資料,你無法將自己的社交網絡從站點打包帶走,甚至,你連自己書寫的內容都有可能被平台無理由刪除。社交媒體平台成了壟斷者,開放互聯網理想的敵人,當然也是開源理念的敵人。於是,一些開放標準與協議應運而生,讓人們可以自由使用不同開源平台,並且讓這些開源平台間可以順利互動。其中,由 W3C 在 2018 年起草的 ActivityPub 協議是目前最成熟的一支。實作了此協議的長毛象 Mastodon 社交網絡截止 2023 年 5 月 2 日已經有 9500 個站點,120 萬活躍用戶。
本次演講首先將簡要介紹 ActivityPub 協議的定義、歷史及發展。 ActivityPub 是一個分散式社交網路協議,目的是實現不同平台/站點/實例之間的互動與連結。接著,我將探討 ActivityPub 協議的核心概念,包括 Actors(角色)、Objects(對象)和 Activities(活動)。Actors 是協議中代表使用者或服務的實體;Objects 是用戶間互動的主要內容,如文章、圖片等;而 Activities 則描述了 Actors 對 Objects 所採取的動作,例如發布、回覆等;此外,我還會介紹 Inbox 和 Outbox 的概念,它們分別表示用戶接收和發送訊息的容器(但通常開源應用不一定完整實作 Outbox)。
在基礎實作範例部分,我將介紹如何實作一個簡單實例,展示如何用 Python 建立基本的 Actor、創建及發送 Activity 和 Object 。當然,也會實作 Inbox 的處理流程。這樣可以完整實現社交媒體賬戶的基本功能,包括追蹤、按贊、留言、接收新動態等。這樣可以讓參與者不僅知道 ActivityPub 協議的原理,也可以在自己的開源應用中加入 ActivityPub ,讓更多開源應用可以向社交媒體一樣互動起來,真正朝向實踐聯邦宇宙的目標前進!
ActivityPub 協議簡介 (5分鐘)
1. ActivityPub 協議的定義
2. ActivityPub 的歷史及發展
3. 如何應用於社交網路及開源應用
ActivityPub 協議核心概念 (10分鐘)
1. Actors(角色)
2. Objects(對象)
3. Activities(活動)
4. Inbox 與 Outbox(收件箱與寄件箱)
基礎實作範例 (15分鐘)
1. 建立基本的 Actor
2. 創建及發送 Activity 與 Object
3. 實作 Inbox 與 Outbox 的處理流程
4. 示範如何建立互動,如:追蹤、取消追蹤、發布動態等
入門
Target Audience –社交媒體重度使用者、開源應用開發者、去中心愛好者
日常研究方向是自然語言處理。不務正業方向是長毛象。近期在努力學習Elixir、Web滲透、逆向工程。
自由軟件愛好者,在 21 年底拋棄專有社交媒體自建站點「入住」聯邦宇宙。