OpenAPI Generator를 통해 Twitter APIv2의 Type Script 클라이언트 자동 생성

8월에 공개된 것이기 때문에 OpenAPI Generator를 사용하여 TypeScript용 클라이언트를 자동으로 생성했습니다.
https://github.com/yarnaimo/twimo-v2
트위터 APIv2에는 OAuth 2.0 Bearer Token과 OAuth 1.0a User Context 두 가지 인증 방법이 있다.
OAuth 2.0 Bearer Token을 통해 공개된 트위터 등 이용자와 무관한 접근 가능한 데이터를 확보할 수 있지만, 특정 이용자로서 이뤄지는 트위터 기고나 비공개 트위터 취득 등의 조작은 여전히 종전과 마찬가지로 OAuth1이다.0a 인증이 필요합니다.
OAuth2.0 인증은 OpenAPI Generator의 자동 생성을 통해 대응하지만 OAuth1.0a 인증은 지원되지 않기 때문에 수동으로 실시하고 두 가지 인증 방법을 지원한다.

설치하다.


yarn add twimo-v2
# or
npm i -S twimo-v2

사용법


Tweet lookup 끝에서 데이터를 가져옵니다.

OAuth 2.0 Bearer Token


import { configureApi, TweetsApi, SearchApi, UsersApi } from 'twimo-v2'

const bearerToken = 'xxxxxxxx'
const tweetsApi = configureApi(TweetsApi, bearerToken)

tweetsApi.findTweetsById({
  ids: ['1326191408546414592'],
  expansions: ['author_id', 'attachments.media_keys'],
  tweetFields: ['created_at', 'referenced_tweets', 'attachments'],
  mediaFields: ['url', 'width', 'height'],
})

OAuth 1.0a User Context


import {
  configureUserContextApi,
  TweetsApi,
  SearchApi,
  UsersApi,
} from 'twimo-v2'

const apiKeys = { apiKey: 'xxxxxxxx', apiSecret: 'xxxxxxxx' }
const accessTokens = { token: 'xxxxxxxx', tokenSecret: 'xxxxxxxx' }

const tweetsApi = configureUserContextApi(TweetsApi, apiKeys, accessTokens)

tweetsApi.findTweetsById({
  ids: ['1326191408546414592'],
  expansions: ['author_id', 'attachments.media_keys'],
  tweetFields: ['created_at', 'referenced_tweets', 'attachments'],
  mediaFields: ['url', 'width', 'height'],
})

응답 예


{
  "data": [
    {
      "id": "1326191408546414592",
      "created_at": "2020-11-10T15:54:05.000Z",
      "text": "test https://t.co/uMLs9riKeg",
      "author_id": "1013969666186678272",
      "attachments": {
        "media_keys": [
          "3_1326191367203160064"
        ]
      }
    }
  ],
  "includes": {
    "media": [
      {
        "height": 128,
        "url": "https://pbs.twimg.com/media/EmeUBaJVgAA9mFu.png",
        "width": 477,
        "media_key": "3_1326191367203160064",
        "type": "photo"
      }
    ],
    "users": [
      {
        "id": "1013969666186678272",
        "name": "やまいも",
        "username": "yarnaimo"
      }
    ]
  }
}

APIv2 응답 형식 정보


Expansions


APIv2에서 트위터의 기고 사용자와 미디어(이미지, 동영상) 등은 트위터 주체와 다른includes 필드에 포함된다.
이 기본값은 응답에 포함되지 않기 때문에 요청할 때 expansions 파라미터를 통해 응답에 포함될 데이터를 지정해야 합니다.

  • 지정한 =>author_id에user를 포함하고 이user의 id가 들어갑니다includes

  • 지정=>data.author_id에 미디어를 포함하는데 그 중에서 미디어attachments.media_keys의 진입includes
  • Fields


    모든 트위터나 미디어에 포함될 필드는 media_key/data.attachments.media_keys/tweetFields 등fields 매개 변수로 지정됩니다.

    좋은 웹페이지 즐겨찾기