

よかったら参考にしてくだされ
### mention
{
"did": "",
"collection": "",
"record": {
"text": "",
"createdAt": "",
"entities": [
{
"type": "mention",
"index": {
"end": 19,
"start": 0
},
"value": "did:plc:opfkqvrr3g3wazzjqcnxkaqy"
}
]
}
}
### post-link(投稿内のurlにリンクを貼る)
{
"did": "",
"collection": "",
"record": {
"text": "",
"createdAt": "",
"entities": [
{
"type": "link",
"index": {
"end": 22,
"start": 0
},
"value": "https://atproto.com/lexicons/com-atproto-session"
}
]
}
}
mentionのvalueはhandle(user.bsky.social)でもリンクは乗りますが相手側に通知が飛びません。相手側にも通知するにはdidが必要ぽい
あざます!(たぶんそうだろうなとは思っていたのですが自動で変換されてくれたらいいなーと思いつつ試したら駄目でした)
start, endはtextでリンクを貼る位置を指定します
text=xxx_@syui_xxxなら
4,8とかになりそう
なるほど。(めんどくさそう...の顔)
すみません、mentionはdidのstart, endかも
おそらくなんですがこれリンクの開始と終了位置だと思うんですよね。なので
検索はGoogleです。
のGとeの位置なんかなぁと。バイト位置なのか文字位置なのかが分からないけども。
そうですね、私が間違ってたので最初のやつが正しそう
クライアント作るなら入力を markdown とかにして start/end を得ないと手で位置を入力させるのは無理そうな気がしますね。
そうですね。
さっきのやつ間違ってたみたいなので修正。
let e = handle.chars().count();
goでtwitterのlibに便利そうなのあるらしい。見つけたら共有します
これが便利らしいけど、url用ぽいので使えるかはわからない
ありがとうございます。ちなみに今これ使って2つ投げてみたんですが、どう見えてるでしょう?(すみません実機持ってなくて)
@mattnの部分はprofileのリンクに飛んでないみたい、didでリンクされてない?内部でhandleとの一致を見ているのかも
私のはこんな感じ
mにhandle(user.bsky.social)が入ってる
let e = udid.chars().count();
let s = 0;
if let Ok(post) = c.string_flag("post") {
let post = Some(json!({
"did": did.to_string(),
"collection": col.to_string(),
"record": {
"text": m.to_string() + &" ".to_string() + &post.to_string(),
"createdAt": d.to_string(),
"entities": [
{
"type": "mention".to_string(),
"index": {
"end": e,
"start": s
},
"value": udid.to_string()
}
]
},
}));