Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 27 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,21 +181,27 @@ const mediaResponse = await twitterClient.media.upload(
'image/jpeg',
'tweet_image'
);
if (!twitterClient.isSuccessResponse(mediaResponse)) {
console.error('Failed uploading media:', JSON.stringify(mediaResponse, null, 2));
}
const mediaData = mediaResponse.data;
const mediaId = mediaData.data.id;
```

### Get Media Upload Status

```typescript
const media = await twitterClient.media.getUploadStatus(mediaId);
const mediaStatus = media.data.data.processing_info.state; // 'succeeded' | 'in_progress' | 'pending' | 'failed'
const mediaResponse = await twitterClient.media.getUploadStatus(mediaId);
if (!twitterClient.isSuccessResponse(mediaResponse)) {
console.error('Failed get media upload status:', JSON.stringify(mediaResponse, null, 2));
}
const mediaStatus = mediaResponse.data.data.processing_info.state; // 'succeeded' | 'in_progress' | 'pending' | 'failed'
```

### Add Metadata to Media

```typescript
const mediaMetadata = await twitterClient.media.addMetadata(
const mediaMetadataResponse = await twitterClient.media.addMetadata(
mediaId, // media id
'A smiling dog profile picture', // alt text
true, // allow download
Expand All @@ -208,12 +214,16 @@ const mediaMetadata = await twitterClient.media.addMetadata(
### Create Post

```typescript
const post = await twitterClient.posts.create(
const postReponse = await twitterClient.posts.create(
'Hello World!',
{
media: { media_ids: [mediaId] },
}
);
if (!twitterClient.isSuccessResponse(postReponse)) {
console.error('Failed creating new post with media:', JSON.stringify(postReponse, null, 2));
}
const post = postResponse.data;
const postId = post.data.id;
```

Expand All @@ -226,9 +236,11 @@ await twitterClient.posts.delete(postId);
### Get One Post

```typescript
const post = await twitterClient.posts.get(postId, {
const postResponse = await twitterClient.posts.get(postId, {
mediaFields: ['alt_text', 'type', 'url', 'media_key'],
});
if (!twitterClient.isSuccessResponse(postReponse)) return;
const post = postResponse.data;
const postId = post.data.id;
const postText = post.data.text;
const postAuthorId = post.data.author_id;
Expand All @@ -240,9 +252,11 @@ const otherpostMediaKey = post.includes?.media?.[0].media_keys?.[0];
### Get Several Posts

```typescript
const posts = await twitterClient.posts.getMultiple([postId1, postId2, postId3], {
const postsResponse = await twitterClient.posts.getMultiple([postId1, postId2, postId3], {
mediaFields: ['alt_text', 'type', 'url', 'media_key'],
});
if (!twitterClient.isSuccessResponse(postsResponse)) return;
const posts = postsResponse.data;
const post1 = posts.data[0];
const post2 = posts.data[1];
const post3 = posts.data[2];
Expand All @@ -251,14 +265,18 @@ const post3 = posts.data[2];
### Like Post

```typescript
const like = await twitterClient.likes.add(postId);
const likeResponse = await twitterClient.likes.add(postId);
if (!twitterClient.isSuccessResponse(likeResponse)) return;
const like = likeResponse.data;
const liked = like.data.liked;
```

### Get Authenticated User Info

```typescript
const user = await twitterClient.users.getMe();
const userResponse = await twitterClient.users.getMe();
if (!twitterClient.isSuccessResponse(userResponse)) return;
const user = userResponse.data;
const userId = user.data.id;
const userName = user.data.name;
const userUsername = user.data.username;
Expand Down Expand Up @@ -309,7 +327,7 @@ import { IHttpAdapter, IHttpFetchResponse } from 'x-api-sdk-ts';

export class CustomHttpAdapter implements IHttpAdapter {
constructor(private paramA: string, private paramB: number) {}
public async fetch<T>(url: string, options?: RequestInit): Promise<IHttpFetchResponse<T>> {
public fetch<T>(url: string, options?: RequestInit): Promise<IHttpFetchResponse<T>> {
return fetch(url, options);
}
}
Expand All @@ -324,8 +342,6 @@ const twitterClient = new TwitterClient(config, {
```




## Development Documentation

See [Development Documentation](https://github.com/Micka33/x-api-sdk-ts/blob/main/DEVELOPMENT.md).
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "x-api-sdk-ts",
"version": "2.0.2",
"version": "2.0.3",
"description": "TypeScript Library for the X (ex-twitter) API V2",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down