kumuのつぶやき

フロントエンド勉強中の学生のただつぶやき

go-twitterでusers/showとfavorites/listを叩く

goのTwitter API用ライブラリは、有名どころではanacondaとgo-twitterがある。
とりあえず今回はgo-twitterを使用する。


ちなみにusers/showはユーザーのプロフィールを取得するというもの。

developer.twitter.com


favorites/listはユーザーがお気に入りに登録したツイートの一覧を取得するエンドポイント。 developer.twitter.com


コード

consumerKeyなどはenvファイルに記述し、godotenvなど使うといいかも

初期設定↓
import(
    "github.com/dghubble/go-twitter/twitter"
    "github.com/dghubble/oauth1"
)
config := oauth1.NewConfig("consumerKey", "consumerSecret")
token := oauth1.NewToken("accessToken", "accessSecret")
httpClient := config.Client(oauth1.NoContext, token)

client := twitter.NewClient(httpClient)
users/show
user, res, err := client.Users.Show(&twitter.UserShowParams{
    ScreenName: id,
})

UserShowParamsにはUserID, ScreenName, IncludeEntitiesを指定できる。
UserIDはユーザごとに割り当てられている値。
ここで調べられる。idtwi | Twitter IDチェッカー(変更履歴の追跡)

よく見る@から始まるIDはScreenName

IncludeEntitiesは正直よくわからない。

UserID ScreenNameはどちらかは必須となっている。

取得したユーザ情報はこれ見るといいかも。
twitter package - github.com/dghubble/go-twitter/twitter - pkg.go.dev

favorites/list
tweets, res, err := client.Favorites.List(&twitter.FavoriteListParams{
    ScreenName: id,
    Count:      count,
})

FavoriteListParamsに指定できるもの↓
UserID
ScreenName
Count -> 検索する数。1~200
SinceID -> ツイートのID。そのツイートより後のツイートを取得
MaxID -> ツイートのID。そのツイートより前のツイートを取得
IncludeEntities -> 画像や動画の情報が含まれるかどうからしい。
TweetMode -> Twitter APIの方には無く、go-twitterにしかない。よくわからない。
UserID ScreenNameはどちらか必須。

取得したツイート情報はこれ見るといいかも。
twitter package - github.com/dghubble/go-twitter/twitter - pkg.go.dev