example

ここではlexiconsの使用例を紹介します。

option

# reverse
curl -sL "https://bsky.social/xrpc/com.atproto.repo.listRecords?repo=${handle}&collection=app.bsky.feed.post&reverse=true"

login

handle=yui.syui.ai
pass=xxx
curl -sL -X POST -H "Content-Type: application/json" \
         -d "{\"identifier\":\"$handle\",\"password\":\"$pass\"}" \
         https://bsky.social/xrpc/com.atproto.server.createSession

# token
token=`curl -sL -X POST -H "Content-Type: application/json" -d "{\"identifier\":\"$handle\",\"password\":\"$pass\"}" https://bsky.social/xrpc/com.atproto.server.createSession|jq -r .accessJwt`

# did
did=`curl -sL -X POST -H "Content-Type: application/json" -d "{\"identifier\":\"$handle\",\"password\":\"$pass\"}" https://bsky.social/xrpc/com.atproto.server.createSession|jq -r .did`

# profile
curl -sL -X GET -H "Content-Type: application/json" \
         -H "Authorization: Bearer $token" \
         "https://bsky.social/xrpc/app.bsky.actor.getProfile?actor=${handle}"

# notify
curl -sL -X GET -H "Content-Type: application/json" \
         -H "Authorization: Bearer $token" \
         https://bsky.social/xrpc/app.bsky.notification.listNotifications

post

col=app.bsky.feed.post

created_at=`date --iso-8601=seconds`

json="{
    \"repo\": \"$handle\",
        \"did\": \"$did\",
        \"collection\": \"$col\",
        \"record\": {
            \"text\": \"hello world\",
            \"createdAt\": \"$created_at\"
        }
}"

# post
curl -sL -X POST -H "Content-Type: application/json" \
         -H "Authorization: Bearer $token" \
         -d "$json" \
         https://bsky.social/xrpc/com.atproto.repo.createRecord

mention

example.json

{
  "did": "did:plc:4hqjfn7m6n5hno3doamuhgef",
  "repo": "yui.syui.ai",
  "collection": "app.bsky.feed.post",
  "record": {
    "text": "test",
    "$type": "app.bsky.feed.post",
    "createdAt": "2023-07-20T13:05:45+09:00",
    "facets": [
      {
        "$type": "app.bsky.richtext.facet",
        "index": {
          "byteEnd": 13,
          "byteStart": 0
        },
        "features": [
          {
            "did": "did:plc:4hqjfn7m6n5hno3doamuhgef",
            "$type": "app.bsky.richtext.facet#mention"
          }
        ]
      }
    ]
  }
}
# mention
col=app.bsky.feed.post
handle_m=yui.syui.ai
did_m=`curl -sL -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $token" "https://bsky.social/xrpc/app.bsky.actor.getProfile?actor=${handle_m}"|jq -r .did`
at=@${handle_m}
s=0
e=`echo $at|wc -c`

json="{
        \"did\": \"$did\",
        \"repo\": \"$handle\",
        \"collection\": \"$col\",
        \"record\": {
            \"text\": \"$text\",
            \"\$type\": \"app.bsky.feed.post\",
            \"createdAt\": \"$created_at\",
            \"facets\": [
            {
                \"\$type\": \"app.bsky.richtext.facet\",
                \"index\": {
                    \"byteEnd\": $e,
                    \"byteStart\": $s
                },\"features\": [
                {
                    \"did\": \"$did_m\",
                    \"\$type\": \"app.bsky.richtext.facet#mention\"
                }
                ]
            }
            ]
        }
}"

curl -sL -X POST -H "Content-Type: application/json" \
         -H "Authorization: Bearer $token" \
         -d "$json" \
         https://bsky.social/xrpc/com.atproto.repo.createRecord

output

{"uri":"at://did:plc:4hqjfn7m6n5hno3doamuhgef/app.bsky.feed.post/3k2wkbvcasf24","cid":"bafyreiecswq5qhk7f4xxztevzbfynocsgmjrmr3hwqoluhhzvqgowalivi"}

reply

example.json

{
  "repo": "yui.syui.ai",
  "did": "did:plc:4hqjfn7m6n5hno3doamuhgef",
  "collection": "app.bsky.feed.post",
  "record": {
    "text": "reply",
    "createdAt": "2023-07-20T13:05:45+09:00",
    "reply": {
      "root": {
        "cid": "bafyreiecswq5qhk7f4xxztevzbfynocsgmjrmr3hwqoluhhzvqgowalivi",
        "uri": "at://did:plc:4hqjfn7m6n5hno3doamuhgef/app.bsky.feed.post/3k2wkbvcasf24"
      },
      "parent": {
        "cid": "bafyreiecswq5qhk7f4xxztevzbfynocsgmjrmr3hwqoluhhzvqgowalivi",
        "uri": "at://did:plc:4hqjfn7m6n5hno3doamuhgef/app.bsky.feed.post/3k2wkbvcasf24"
      }
    }
  }
}
# reply
col=app.bsky.feed.post
uri=at://did:plc:4hqjfn7m6n5hno3doamuhgef/app.bsky.feed.post/3k2wkbvcasf24
cid=bafyreiecswq5qhk7f4xxztevzbfynocsgmjrmr3hwqoluhhzvqgowalivi

json="{
    \"repo\": \"$handle\",
        \"did\": \"$did\",
        \"collection\": \"$col\",
        \"record\": {
            \"text\": \"reply\",
            \"createdAt\": \"$created_at\",
            \"reply\": {
                \"root\": {
                    \"cid\": \"$cid\",
                    \"uri\": \"$uri\"
                },
                \"parent\": {
                    \"cid\": \"$cid\",
                    \"uri\": \"$uri\"
                }
            }
        }
}"

curl -sL -X POST -H "Content-Type: application/json" \
         -H "Authorization: Bearer $token" \
         -d "$json" \
         https://bsky.social/xrpc/com.atproto.repo.createRecord

like

# reply
col=app.bsky.feed.like
uri=at://did:plc:4hqjfn7m6n5hno3doamuhgef/app.bsky.feed.post/3k2wkbvcasf24
cid=bafyreiecswq5qhk7f4xxztevzbfynocsgmjrmr3hwqoluhhzvqgowalivi

json="{
    \"repo\": \"$handle\",
        \"did\": \"$did\",
        \"collection\": \"$col\",
        \"record\": {
            \"createdAt\": \"$created_at\",
            \"subject\": {
                \"cid\": \"$cid\",
                \"uri\": \"$uri\"
            }
        }
}"

curl -sL -X POST -H "Content-Type: application/json" \
         -H "Authorization: Bearer $token" \
         -d "$json" \
         https://bsky.social/xrpc/com.atproto.repo.createRecord

follow

col=app.bsky.graph.follow
handle_m=yui.syui.ai
did_m=`curl -sL -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $token" "https://bsky.social/xrpc/app.bsky.actor.getProfile?actor=${handle_m}"|jq -r .did`

json="{
    \"repo\": \"$handle\",
        \"did\": \"$did\",
        \"collection\": \"$col\",
        \"record\": {
            \"createdAt\": \"$created_at\",
            \"subject\": \"$did_m\"
        }
}"

curl -sL -X POST -H "Content-Type: application/json" \
         -H "Authorization: Bearer $token" \
         -d "$json" \
         https://bsky.social/xrpc/com.atproto.repo.createRecord

unfollow

$ curl -sL -X GET -H "Content-Type: application/json" \
         -H "Authorization: Bearer $token" \
         "https://bsky.social/xrpc/app.bsky.graph.getFollowers?actor=${handle}&cursor=${cursor}" \
         |jq -r ".cursor"

1688489398761::bafyreieie7opxd5mojipvk3xe3h65u3qvpungskqxamldepctfbd6xhdcu
cursor=1688489398761::bafyreieie7opxd5mojipvk3xe3h65u3qvpungskqxamldepctfbd6xhdcu

$ curl -sL -X GET -H "Content-Type: application/json" \
         -H "Authorization: Bearer $token" \
         "https://bsky.social/xrpc/app.bsky.graph.getFollowers?actor=${handle}&cursor=${cursor}" \
         |jq -r ".followers|.[0].viewer.followedBy"

at://did:plc:uqzpqmrjnptsxezjx4xuh2mn/app.bsky.graph.follow/3k2wkjr6cnj2x
col=app.bsky.graph.follow
rkey=at://did:plc:uqzpqmrjnptsxezjx4xuh2mn/app.bsky.graph.follow/3k2wkjr6cnj2x

handle_m=yui.syui.ai
did_m=`curl -sL -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $token" "https://bsky.social/xrpc/app.bsky.actor.getProfile?actor=${handle_m}"|jq -r .did`

json="{
    \"repo\": \"$handle\",
        \"did\": \"$did\",
        \"collection\": \"$col\",
        \"rkey\":\"$rkey\",
        \"record\": {
            \"createdAt\": \"$created_at\",
            \"subject\": \"$did_m\"
        }
}"

curl -sL -X POST -H "Content-Type: application/json" \
         -H "Authorization: Bearer $token" \
         -d "$json" \
         https://bsky.social/xrpc/com.atproto.repo.deleteRecord

results matching ""

    No results matching ""