LoginSignup
0
0

More than 1 year has passed since last update.

【GO言語】Twitterで自動いいねbotの作り方

Posted at

久しぶりに投稿します。
今回はタイムラインに流れてくるツイートに対して、
自動いいねできるコードを作成したので、そのご紹介です。
1ヶ月くらいやるとフォローが減ったりします。

やったこと

・Go言語で自動いいねbotの作成

環境

・Go (version 1.158.8)
・WindowsServer2019
 ※実行方法はタスクスケジューラで定期実行してました。

実装

Twiter認証
Twiter認証.go
import (
     "github.com/ChimeraCoder/anaconda"
)
//Twitterの認証を行うメソッド
func GetTwitterApi() *anaconda.TwitterApi {
     anaconda.SetConsumerKey("XXXXXX")
     anaconda.SetConsumerSecret("XXXXXXXX")
     api := anaconda.NewTwitterApi("XXXXXX", "XXXXXXXX")
     return api
 }

まず、これをやらないとはじまらない!
Twitter認証を行います。今回もanacondaを利用しました。
Twitterであれば基本的にanacondaで実装できるのでおすすめです。
https://pkg.go.dev/github.com/ChimeraCoder/anaconda

タイムライン取得
タイムライン取得.go
import (
     "net/url"
)
---中略---
//Twitterの認証情報を取得
api := GetTwitterApi()

//タイムライン取得用の引数を設定
v := url.Values{}
v.Set("count", "10")

//タイムラインを10件取得する
tweets, err := api.GetHomeTimeline(v)
if err != nil {
     panic(err) //error時の処理
 }

先程のAPIを呼び出して、タイムラインを取得します。
vはhttps://pkg.go.dev/net/urlの型になります。
タイムラインを取得するAPIの引数に必要なため、宣言してます。
api.GetHomeTimeline(v)でtweetsに最新10件のツイートをリスト型で格納します。

いいね処理
いいね処理.go
//取得したツイート分繰り返し
for _, tweet := range tweets {
     //ツイートがいいねされているかで条件分岐
     if tweet.Favorited {
          //いいねされていれば何もしない
          fmt.Println("いいね済みでした")

     //いいねされていない場合
     } else {
     _, err := api.Favorite(tweet.Id) //いいね処理
     if err != nil {
          panic(err) //error時の処理
     }
}        

取得したツイート(リスト型)に対して、いいねされているかどうかで条件分岐し、
いいねされていない場合にFavorite(Id)でいいね処理を行います。
tweet.Idはツイートに対して一意に割り当てられているIDになります。

全処理

まとめると以下の通りです。

いいねbot.go
import (
        "fmt"
        "net/url"

        "github.com/ChimeraCoder/anaconda"
        )
func main() {
     //Twitterの認証情報を取得
     api := GetTwitterApi()

     //タイムライン取得用の引数を設定
     v := url.Values{}
     v.Set("count", "10")

     //タイムラインを10件取得する
     tweets, err := api.GetHomeTimeline(v)
     if err != nil {
          panic(err) //error時の処理
     }

     //取得したツイート分繰り返し
     for _, tweet := range tweets {
          //ツイートがいいねされているかで条件分岐
          if tweet.Favorited {
               //いいねされていれば何もしない
               fmt.Println("いいね済みでした")

          //いいねされていない場合
          } else {
          _, err := api.Favorite(tweet.Id) //いいね処理
          if err != nil {
               panic(err) //error時の処理
          }
     }        
}

//Twitterの認証を行うメソッド
func GetTwitterApi() *anaconda.TwitterApi {
     anaconda.SetConsumerKey("XXXXXX")
     anaconda.SetConsumerSecret("XXXXXXXX")
     api := anaconda.NewTwitterApi("XXXXXX", "XXXXXXXX")
     return api
 }

以上です。ありがとうございました。
楽しいTwitter生活を送ってください。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0