ActivityPub 実装メモ
やること
できてないこと
Mastodonから投稿が見られる
Misskeyから投稿が見られる
Mastodonから固定tootが見られる
Misskeyから固定ノートが見られる
できたこと
Web用のプロフィールページ
リッチなプロフィール情報(リンクなど)を返す
Mastodonから検索できる
Misskeyから検索できる
Mastodonからフォローできる
Misskeyからフォローできる
Mastodonのユーザーをフォローできる
Misskeyのユーザーをフォローできる
Mastdonでできていたこと
WebFinger
/.well-known/host-meta からXMLを返す
code:xml
<?xml version="1.0" encoding="UTF-8"?>
</XRD>
code:json
{
"subject":"acct:lacolaco@activitypub.lacolaco.net",
"aliases":[
],
"links":[
{
"type":"text/html",
},
{
"rel":"self",
"type":"application/activity+json",
},
{
}
]
}
そしてこの rel=self のURLに Accept: application/activity+json ヘッダ付きでリクエストを送ると、 Person のデータが返ってくる。
code:json
{
"featured":{"@id":"toot:featured","@type":"@id"},
"alsoKnownAs":{"@id":"as:alsoKnownAs","@type":"@id"},
"movedTo":{"@id":"as:movedTo","@type":"@id"},
"IdentityProof":"toot:IdentityProof","discoverable":"toot:discoverable","focalPoint":{"@container":"@list","@id":"toot:focalPoint"}}],
"type":"Person",
"preferredUsername":"lacolaco",
"name":"らこ",
"summary":"\u003cp\u003eらこだよ。\u003c/p\u003e",
"manuallyApprovesFollowers":false,
"discoverable":null,
"publicKey":{
"publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmfote2wqxEcqD3n3IPXs\nuv8ngs0hQ1fzvydoAQLntwW8ch9bJLJhjT4Z2VPVqxmrfM0l4keSaf7AesevE/CK\n1trfK3zFQvumzU1J8Gu04+1EyI0wrv5d1SpVHR+xrvxY4Z4UsKVb/wrcKLITV7SW\nZzzhUMSoyAJuwc0V+s8R0hBYEpleq/02mrSvyeC2QoTj7+vqEO5KIMipBn9hRFm/\nA0ba78zbjScWFj6G8RqK2NGJ/dZk9S6S/zqIvQXwSp+Cyi5EepsLUqqGnvb0Wyi9\nFqZD2PVqksYZM1bNJAh8vN8rkwbi4/wNXzptHnSIJ0c4GEado0kcnY+Mbp9LTbPn\nGwIDAQAB\n-----END PUBLIC KEY-----\n"},
"tag":[],
"attachment":[
{"type":"PropertyValue","name":"Twitter",
"value":"\u003ca href=\"https://twitter.com/laco2net\" rel=\"me nofollow noopener\" target=\"_blank\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/laco2net\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e"},{"type":"PropertyValue","name":"Website","value":"\u003ca href=\"https://lacolaco.net\" rel=\"me nofollow noopener\" target=\"_blank\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003elacolaco.net\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e"} ],
"endpoints":{
},
"icon":{
"type":"Image",
"mediaType":"image/png",
}
}
これが返せていればMastodonなどからプロフィールが参照できたり、フォローしたりできる(はず)