twitter-openapi-typescript icon indicating copy to clipboard operation
twitter-openapi-typescript copied to clipboard

Search by username throw error

Open anivire opened this issue 1 year ago • 3 comments

Searching by any username returns error (Response returned an error code)

anivire avatar Oct 31 '24 17:10 anivire

The following test works fine.

https://github.com/fa0311/twitter-openapi-typescript/blob/fb626993ee79a5fded12c215fcdf03d2c35ae9a3/twitter-openapi-typescript/test/api/userApi.test.ts#L4-L10

Can you provide source code to reproduce?

fa0311 avatar Nov 01 '24 07:11 fa0311

Hmm, for some reason today all working good with same code

export class FetchServices {
  private readonly scraper = new Scraper();
  private readonly api = new TwitterOpenApi();

  async getTwitterProfile(username: string): Promise<{
    username: string;
    name?: string;
    followersCount: number;
    tweetsCount: number;
    images: {
      avatar: string;
      banner?: string;
    };
  } | null> {
    const twitterClient = await this.api.getGuestClient();
    const r = await twitterClient
      .getUserApi()
      .getUserByScreenName({ screenName: username });

    if (r && r.data && r.data.user) {
      return {
        username: r.data.user.legacy.screenName,
        name: r.data.user.legacy.name || undefined,
        followersCount: r.data.user.legacy.normalFollowersCount || 0,
        tweetsCount: r.data.user.legacy.statusesCount || 0,
        images: {
          avatar: r.data.user.legacy.profileImageUrlHttps.replace(
            '_normal',
            ''
          ),
          banner: r.data.user.legacy.profileBannerUrl,
        },
      };
    }

    return null;
  }
}

anivire avatar Nov 01 '24 16:11 anivire

Twitter's anti-spam system gets frequent updates, so maybe that's why.

fa0311 avatar Nov 01 '24 18:11 fa0311

This works fine as it now passes the spam check

fa0311 avatar May 07 '25 16:05 fa0311