Setup
npm i twitter-openapi-typescript
Usage
import { TwitterOpenApi } from 'twitter-openapi-typescript';
const api = new TwitterOpenApi();
const client = await api.getGuestClient();
const response = await client.getUserApi().getUserByScreenName({ screenName: 'elonmusk' });
const userLegacy = response.data?.user?.legacy;
if (userLegacy) {
console.log(userLegacy.screenName);
console.log(`followCount: ${userLegacy.friendsCount} followersCount: ${userLegacy.followersCount}`);
} else {
console.log('User not found');
}
Login
const client = await api.getClientFromCookies({
ct0: '<csrf_token>',
auth_token: '<auth_token>',
});
Multiple OS
The Token can only be used on the same OS that issued the Token
In other words, if the sec-ch-ua-platform does not match, the Token cannot be used.
This library uses the Linux Chrome header by default.
To use Token issued by Windows, do the following.
const api = new TwitterOpenApi();
api.setAdditionalApiHeaders({
'sec-ch-ua-platform': '"Windows"',
});
List of APIs
You should read the Test case.
https://github.com/fa0311/twitter-openapi-typescript/tree/master/twitter-openapi-typescript/test/api
Customize in detail
Most values exist as static variables. There is no need to change them.
Changing them could result in account suspension.
For advanced customization, use the
You can also use the TwitterOpenApiClient
class directly
import { TwitterOpenApi } from 'twitter-openapi-typescript';
TwitterOpenApi.fetchApi = fetch.bind(globalThis);
TwitterOpenApi.twitter = 'https://x.com/home';
TwitterOpenApi.bearer = 'xxxx';
License
This project is dual licensed. You can choose one of the following licenses: