ひまつぶし雑記帖

doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍

おひとり様ActivityPubサーバーのjsonの実例

2023/10/3 [09:14:42] (火) 天気

今さらだけど改めて。
おひとり様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」に入れるのか、特に決まりごとはないっぽいけど、現状これで問題なくお相手に通知が届く。

ただ、twitterやfacebook、あるいはLINEのように相手にだけ直接送ってそれ以外のひとに見えなくするのは無理。ActivityPubというか分散型サーバーというか。サーバー管理者はPublic指定がないものも含めて全部見ることができる。
twitterだからLINEだから安心とは言えないんだけど、なにかあった時に、抗議する先が一箇所なのか、あちこちいろいろあるのかということ。
ネットは信用しちゃいけいない(閑話休題)

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が欲しいんだよなあ。
image
にしても、駅近くの花屋さんの盛況っぷりに驚いた。ウチに花を飾る、なんてことを自発的にやったことがなかったんで、なおさら。

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ところてんx5

2024/4/27 12:51

図書館で作業。案の定、目視確認は一回じゃ抜け漏れが出る。
一応、最初に確認、反映させた箇所で大丈夫だったけど、これは先が思いやられる。

2024/4/27 08:52

もろもろ、問題山積でやる気が出なくてマズい。久しぶりに図書館の個人席にノパソ持ち込んで作業してみる、か。

2024/4/27 08:50

こっちはこっちで、問題ありあり

検索
<<2024/4>>
 123456
78910111213
14151617181920
21222324252627
282930

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版