-
-
Notifications
You must be signed in to change notification settings - Fork 23
Nightly Fedibird の絵文字リアクション機能
tateisu edited this page May 19, 2021
·
4 revisions
Nightly fedibird の絵文字リアクション機能
GET https://nightly.fedibird.com/api/v1/instance
- fedibird_capabilities[] に "emoji_reaction" が含まれるなら対応サーバ
自分がリアクション済みなら真
[
{
"name": "👍",
"count": 1, // 後述する理由で、0の場合にパーサは対応すること
"me": false // 自分がリアクションしたなら真
},
{
"name": "zzzsushi",
"count": 1,
"me": true,
"url": "https://files-nightly.fedibird.com/custom_emojis/images/000/002/352/original/zzzsushi.png",
"static_url": "https://files-nightly.fedibird.com/custom_emojis/images/000/002/352/static/zzzsushi.png",
"domain": null // リモートの絵文字ならdomainが設定される
}
]
-
Request Method: PUT
-
Request URL: https://nightly.fedibird.com/api/v1/statuses/106245771772524935/emoji_reactions/%F0%9F%91%8D
-
Request URL: https://nightly.fedibird.com/api/v1/statuses/106245771772524935/emoji_reactions/zzzsushi
-
Request URL: https://nightly.fedibird.com/api/v1/statuses/106245771772524935/emoji_reactions/zzzsushi@domain
-
Status Code: 200
-
response: updated status
-
Emoji 13など、サーバが絵文字として認識しないnameを渡すと422エラーとなる
- Request Method: POST
- Request URL: https://nightly.fedibird.com/api/v1/statuses/106245771772524935/emoji_unreaction
- Status Code: 200
- response: updated status
- userストリームに通知イベントがくる。
- 通知タイプは
emoji_reaction
。 - クライアントはそれを通知TLに表示する他、各種TLに出ている投稿のリアクション内容を更新する。
- ステータスの投稿者に送られる。
- 自分でリアクションした時は通知は来ない
- リアクション解除した時は通知は来ない
- Notificationオブジェクト直下のemoji_reactionはcount=0,me=falseになる。絵文字の種別のみが有効な情報である。
{
"stream": ["user"],
"event": "notification",
"payload": "..." 下記
}
payload (notification entity)
{
"id":"27804",
"type": "emoji_reaction",
"created_at": "2021-05-16T16:26:47.440Z",
"account": {...},
"status":{
"account":{...},
...
"emojis":[],
"emoji_reactioned":true,
"emoji_reactions":[
{"name":"zzzsushi","count":1,"me":true,
"url":"https://files-nightly.fedibird.com/custom_emojis/images/000/002/352/original/zzzsushi.png",
"static_url":"https://files-nightly.fedibird.com/custom_emojis/images/000/002/352/static/zzzsushi.png",
"domain":null
},
{"name":"🎆","count":1,"me":false}
],
...
},
"emoji_reaction":{
"name":"🎆",
"count":0,
"me":false
}
}
- userストリームに emoji_reaction イベントが来る。
- 「サーバ上で処理されたリアクション全て」が送られてくる。
- 自分が投げたリアクションに対しても発生する。
- reaction entity中にstatus_idが含まれる。
- meは設定されない。 読込済ステータスのリアクション集合とは適切にマージを行う必要がある。
以下がどの順序で発生してもUIに問題がでないように作ること
- 追加/削除APIへの応答
- 自分の投稿についたリアクションの通知
- emoji_reactionイベント
例えばAPIの応答が返る前にemoji_reactionイベントが来るかもしれないし、自分の投稿についたリアクションの通知の前後にemoji_reactionイベントが来るかもしれない。
{
"stream": ["user"],
"event": "emoji_reaction",
"payload": "…" // 下記
}
payload (reaction entity)
{
"name":"majikayo",
"count":1, // リアクション削除時は0になる
"url":"https://files-nightly.fedibird.com/cache/custom_emojis/images/000/003/843/original/a436fd4f7d99b3b7.png",
"static_url":"https://files-nightly.fedibird.com/cache/custom_emojis/images/000/003/843/static/a436fd4f7d99b3b7.png",
"domain":"misskey.io",
"status_id":"106256591712106765"
}
購読APIの data.alerts[] に "emoji_reaction" を追加することでプッシュ通知を受け取れる。
- see https://fedibird.com/@noellabo/106260836928081303
- GET /api/v1/emoji_reactions
- emojisにUnicode絵文字かshortcode(複数or)を指定すると絞り込めます。
- curl -XGET -H "Authorization: Bearer XXXXXXXX" https://fedibird.com/api/v1/emoji_reactions -d "emojis[]=🎉" -d "emojis[]=nnaa"