threads-api icon indicating copy to clipboard operation
threads-api copied to clipboard

How are we obtaining the `x-fb-lsd` token?

Open nasty-nick-tv opened this issue 2 years ago • 6 comments

Hi,

I am copying these calls into a Java client.

How can we obtain the 'x-fb-lsd' token?

Thanks

nasty-nick-tv avatar Jul 07 '23 14:07 nasty-nick-tv

Hi @nasty-nick-tv! We obtain the token by parsing the HTML doc.

This logic is inside both getUserIDfromUsername and getPostIDfromURL. We use it to update the token each time those methods are called.

https://github.com/junhoyeo/threads-api/blob/c86f4d8506520d677dccc86c64470dc18b02dc54/threads-api/src/threads-api.ts#L194-L203

Best of luck with your client! I would greatly appreciate it if you could reference my work here (Rest assured, I'll do the same for you in this project's README.md).

junhoyeo avatar Jul 07 '23 14:07 junhoyeo

Question, how do we get fbLSDToken for ThreadsAPI options?

Digital39999 avatar Jul 07 '23 17:07 Digital39999

Question, how do we get fbLSDToken for ThreadsAPI options?

Hi, @Digital39999! Currently, this library threads-api only supports reading data from Threads. fbLSDToken is the value used in GraphQL requests to Threads.

  1. You don't need to set fbLSDToken manually. The package includes an default value you can use without zero setup, and updates internal state automatically when it requests to raw doc. You can just initialize ThreadsAPI with empty options:
const threadsAPI = new ThreadsAPI()
  1. If you still want to set fbLSDToken yourself, you can retrieve it in your own way using the upper code snippet I added to answer @nasty-nick-tv's question, and pass like the following:
const threadsAPI = new ThreadsAPI({
  fbLSDToken,
  noUpdateLSD: true /* default is `false`, if you want to fix `fbLSDToken` with your provided value, set to `true` */
})`

junhoyeo avatar Jul 07 '23 17:07 junhoyeo

Ah thank you for information, are there any rate-limits you occurred yet? It seems that it starts redirecting after too many requests, which isn't ideal, could you add a handler for that?

Also noUpdateLSD is in method options, not in class constructor.

Digital39999 avatar Jul 07 '23 18:07 Digital39999

Added custom proxy options in #32 to sort of prevent this from happening.

Digital39999 avatar Jul 07 '23 20:07 Digital39999

Also noUpdateLSD is in method options, not in class constructor.

Oops, my bad. Should've fixed this.

junhoyeo avatar Jul 07 '23 20:07 junhoyeo