質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Q&A

1回答

1543閲覧

twitter apiにてリツイートユーザー一覧を取得したい

dotaka0803

総合スコア6

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

0グッド

0クリップ

投稿2020/07/21 12:30

表題の件ですが、下記サイトのサンプルコードを参考に実行したところエラーが出てしまいます。
初心者の為、どのように修正することで実行可能なのか教えていただけると幸いです。
参考URL:https://qiita.com/daisukeoda/items/cb6eb00e5d301dee306f#comments

go

1package main 2 3import ( 4 "fmt" 5 "os" 6 "github.com/dghubble/go-twitter/twitter" 7 "github.com/dghubble/oauth1" 8) 9 10const ( 11 targetTweetStatus = `対象のツイートID` 12 consumerKey = `CONSUMER KEY` 13 consumerSecret = `CONSUMER SECRET` 14 accessToken = `ACCESS TOKEN` 15 accessTokenSecret = `ACCESS TOKEN SECRET` 16 until = "2018-11-15" 17 saveFilePath = "./retweeted_users.csv" 18) 19 20func main() { 21 config := oauth1.NewConfig(consumerKey, consumerSecret) 22 token := oauth1.NewToken(accessToken, accessTokenSecret) 23 httpClient := config.Client(oauth1.NoContext, token) 24 twitterClient := twitter.NewClient(httpClient) 25 26 savefile, err := os.Create(saveFilePath) 27 if err != nil { panic(err) } 28 defer savefile.Close() 29 30 savefile.Write(([]byte)("Link, UserName, RetweetedAt, RetweetID\n")) 31 32 targetTweet, _, _ := twitterClient.Statuses.Show(targetTweetStatus, nil) 33 34 // ツイートに画像が含まれている場合は、本文の最後に短縮URLが付与されるので 35 // 正規表現なり、文字をスライスして抜き出す。 36 tweetText := string([]rune(targetTweet.Text)[:104]) 37 38 var maxID int64 = 1111111111111111111 39 40 for ;; { 41 search, _, _ := twitterClient.Search.Tweets(&twitter.SearchTweetParams{ 42 Count: 100, 43 MaxID: maxID, 44 Query: tweetText, 45 SinceID: targetTweetStatus, 46 Until: until, 47 }) 48 49 if len(search.Statuses) == 0 { 50 break 51 } 52 53 tmpLines := "" 54 for _, status := range search.Statuses { 55 link := "https://twitter.com/" + status.User.ScreenName 56 tmpLines += fmt.Sprintf("%s, %s, %s, %d\n", 57 link, 58 status.User.Name, 59 status.CreatedAt, 60 status.ID, 61 ) 62 maxID = status.ID 63 } 64 savefile.Write(([]byte)(tmpLines)) 65 66 } 67 68} 69

エラー内容
go/src/github.com/hello.go:32:53: cannot use targetTweetStatus (type untyped string) as type int64 in argument to twitterClient.Statuses.Show
go/src/github.com/hello.go:45:13: cannot use targetTweetStatus (type untyped string) as type int64 in field value

お手数ですがご教授いただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

エラーメッセージに書かれた通り、
targetTweetStatusの値が文字列で書かれているのに、

それを渡そうとした以下の定義はint64型なので型ミスマッチであるということです。

  • twitterClient.Statuses.Showメソッドの第一引数
  • SearchTweetParams構造体のSinceIDフィールド

解決方法は以下の2通り。

  • targetTweetStatusをint64に変換(strconv.ParseIntなど)
  • targetTweetStatusの定義を数値で書く

投稿2020/07/21 21:22

nobonobo

総合スコア3367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問