- » Kindle
- » iBooks
- » kobo
- » B.W.
- 400円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 200円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 300円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 200円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 200円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 200円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 100円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 490円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 600円
doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍
おひとり様ActivityPubサーバーのjsonの実例
今さらだけど改めて。
おひとり様ActivityPubサーバーで投稿する・しゃべる時に必要になりそうなもの。
・投稿本体(Note)
・画像添付
・メンション(リプライやDM)
・ハッシュタグ(検索する/される時のキーワード設定)
投稿本体は当たり前として。
画像添付やMention、Hashtagも実装してあるので、忘れないうちにメモ…というか、ActivityPubで使うJsonの実例、exampleをメモ。ソースを見ればいいだけの話なんだけど、覚えてないことの方が多いので具体例をちゃっちゃと見られるように。
以下のJSONがウチで使ってる、上記を実装した投稿のフルセット。
投稿はCreateの中のobjectにあるNoteが本体で、その中の本文(content)はともかく、それ以外について。
{"@context":
["https://www.w3.org/ns/activitystreams",
{"Hashtag": "as:Hashtag"}
],
"type": "Create",
"id": "https://tokoroten.doncha.net/t2aki/activity/00341-20231003",
"url": "https://tokoroten.doncha.net/t2aki/activity/00341-20231003",
"published": "2023-10-03T00:01:31Z",
"actor": "https://tokoroten.doncha.net/t2aki",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://tokoroten.doncha.net/t2aki/followers"],
"object": {
"type": "Note",
"id": "https://tokoroten.doncha.net/t2aki/items/00341-20231003",
"url": "https://tokoroten.doncha.net/t2aki/items/00341-20231003",
"published": "2023-10-03T00:01:31Z",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://tokoroten.doncha.net/t2aki/followers",
"https://mstdn.jp/users/donbe2023"],
"attributedTo": "https://tokoroten.doncha.net/t2aki",
"content": "\u003ca href=\"https://mstdn.jp/users/donbe2023\"\u003e@donbe2023@mstdn.jp\u003c/a\u003e うちでも花を飾ることになって、駅前の花屋さんを見てると、けっこうな人が花を買っていてビックリ。ほんと、今さらだけど、世間のひとたちはカジュアルに花を買っていくんだなー。\u003ca href=\"https://tokoroten.doncha.net/tameike.pl?tag=%23%E3%81%B2%E3%81%BE%E3%82%8F%E3%82%8A\"\u003e#ひまわり\u003c/a\u003e",
"attachment":[
{"type":"Document",
"mediaType":"image/png",
"url":"https://tokoroten.doncha.net/20231003.png",
"name":null,
"blurhash":null,
"width":271,
"height":320}
],
"tag": [
{"name":"@donbe2023@mstdn.jp",
"type":"Mention",
"href":"https://mstdn.jp/users/donbe2023"
},
{"name":"#ひまわり",
"href":"https://tokoroten.doncha.net/tameike.pl?tag=%23%E3%81%B2%E3%81%BE%E3%82%8F%E3%82%8A",
"type":"Hashtag"
}
]
}
}
・画像添付
Noteのアタッチメントという配列に入る。
"attachment":[
{"type":"Document",
"mediaType":"image/png",
"url":"https://tokoroten.doncha.net/20231003.png",
"name":null,
"blurhash":null,
"width":271,
"height":320}
]
配列の中、typeがDocumentのブロックひとつが1枚の画像の情報。ウチは1枚限定なので、ブロックはひとつだけ。複数入れる場合はここに追加。
画像情報として。
・画像のURL
・画像の種類(mediaType)
・名前(たぶんAltで使われる)
・blurhash
↑ぼや〜っとしたプレビュー用のハッシュ文字列。よくわからないんで未対応。
・画像の縦横サイズ
・メンション(リプライやDM)
Noteの中の宛先「cc」にお相手のinbox、エンドポイントを追加。
"cc": ["https://tokoroten.doncha.net/t2aki/followers",
"https://mstdn.jp/users/donbe2023"]
「to」に入れるのか「cc」に入れるのか、特に決まりごとはないっぽいけど、現状これで問題なくお相手に通知が届く。
[2024/09/04 07:41:50]追記
メンションは「to」にお相手のinbox、エンドポイント、「cc」に自分のフォロワー、というのがお約束っぽい。
ただ、twitterやfacebook、あるいはLINEのように相手にだけ直接送ってそれ以外のひとに見えなくするのは無理。ActivityPubというか分散型サーバーというか。サーバー管理者はPublic指定がないものも含めて全部見ることができる。
twitterだからLINEだから安心とは言えないんだけど、なにかあった時に、抗議する先が一箇所なのか、あちこちいろいろあるのかということ。
ネットは信用しちゃいけいない(閑話休題)
[2024/09/04 07:41:50]追記
「to」にお相手のinboxだけにしておくとActivityPubの約束事として、お相手だけしか見ることができない・第三者は見ちゃいけないことになっている。この「約束事」を守ることで成り立っているのがFediverse。
Noteの中の「tag」の配列にMentionのブロックを追加。
"tag": [
{"name":"@donbe2023@mstdn.jp",
"type":"Mention",
"href":"https://mstdn.jp/users/donbe2023"
},
Mentionブロックは
・お相手の名前
・お相手の届け先(エンドポイント)
・ハッシュタグ(検索する/される時のキーワード設定)
@context": [
"https://www.w3.org/ns/activitystreams",
{"Hashtag": "as:Hashtag"}
]
ハッシュタグはActivityPubで決められたものじゃないということで「@context」に定義する必要があるらしい。
定義したら、Mentionと同じくNoteの中の「tag」の配列にHashtagのブロックを追加。
"tag": [
{"name":"#ひまわり",
"href":"https://tokoroten.doncha.net/tameike.pl?tag=%23%E3%81%B2%E3%81%BE%E3%82%8F%E3%82%8A",
"type":"Hashtag"
}
Hashtagブロックは
・タグの名前
・タグのURL
ハッシュタグは、おひとり様ActivityPubサーバーで使う意味があるか疑問。
そもそもハッシュタグは複数人で共有するもの。それをひとりしかいないサーバーで使う意味は、たぶんない。ただまあ、データベースに検索かける時にリンク一発叩けばいいだけになるので、便利っちゃ便利なので実装してみた。
仕様・規格からちゃんと読めと言われたら謝るしかできないんだけど、何をするにしても、素人なので実例、exampleが欲しいんだよなあ。
にしても、駅近くの花屋さんの盛況っぷりに驚いた。ウチに花を飾る、なんてことを自発的にやったことがなかったんで、なおさら。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」