bluesky-social / bsky-docs

Bluesky API documentation
https://docs.bsky.app
Other
57 stars 49 forks source link

more doc about API `agent.post` (or `app.bsky.feed.post.create`) #162

Closed boly38 closed 3 days ago

boly38 commented 4 days ago

Hi here 👋

I was trying to find in the doc the formal reference of bluesky API limits in term of post payload length limit (ie. 300) but out-of-error this is not in the current version of the doc

I was able to find basis on How to create a post : https://docs.bsky.app/docs/tutorials/creating-a-post

then In code, this seems to map to and this.api.app.bsky.feed.post.create but unfortunately, app.bsky.feed.post.create is not listed under https://docs.bsky.app/docs/category/http-reference

As DEV I would like API doc for this too

best regards

bnewbold commented 4 days ago

The short answer is that there isn't an API endpoint specifically for creating posts. The atproto data model is that posts are a type of "record" stored in a user's "data repository". So post creation is the process of creating a record in the repo. The same is true for "likes", "following", etc.

The typescript SDK has a helper method for creating posts which abstracts this away, which is the *.post.create method you mention. This is just code that calls the create record API endpoint internally.

This blog post goes in to the details of how posts are created: https://docs.bsky.app/blog/create-post

There are a lot of details, which is why the typescript SDK has a wrapper method to abstract them away a bit.

boly38 commented 3 days ago

hey @bnewbold thank you for you reply 👍 I see that sdk wraps a lots of things.

We can retrieve repository post record specification in the very first sentence of the tutorial in fact 😅

Bluesky posts are repository records with the Lexicon type app.bsky.feed.post.

with max maxGraphemes sets to 300 here

So I'll close this issue Regards