目的
GASでTwitter APIを利用し、今日の自分のリプライ数を取得したい。
分からないこと
今日どれだけ自分がリプライをしたのかの情報を欲しいのですが、取得方法がわかりません。
意図している挙動としては参考のTwilogの「Replayを除く」のようなことをしたいです。
参考
function getTweetToMail() { let date = new Date(); // 現在の日時でDateオブジェクトを生成 date.setDate(date.getDate() - 1) // 朝9時前に実行する場合、協定世界時では前日の日付になるので、さらにもう1日前の日付を取得する let startDate = Utilities.formatDate(date, 'UTC', 'yyyy-MM-dd'); // 日付の書式を Twitter API に渡すパラメーターの形式に合わせる date.setDate(date.getDate() + 1) // date が2日前の日付になっているので、1日前にする let endDate = Utilities.formatDate(date, 'UTC', 'yyyy-MM-dd'); // 上と同じ // Twitter API v2 でユーザーIDを指定してツイートを取得する // tweet.fields=created_at でつぶやいた時刻を取得 // exclude=retweets でリツイートを除外 // start_time= で取得開始時刻を設定 協定世界時で前々日の15時が日本時間では前日の0時 // end_time= で取得終了時刻を設定 協定世界時で前日の14時59分59秒が日本時間では前日の23時59分59秒 const url = "https://api.twitter.com/2/users/94952395/tweets?tweet.fields=created_at&exclude=retweets" + "&start_time=" + startDate + "T15:00:00Z&end_time=" + endDate + "T14:59:59Z"; // こちらの記事を参考にしました。ありがとうございます → https://zenn.dev/specially198/articles/54d0b957f185b8 const options = { "method": "get", "headers": { "authorization": "Bearer ここに自分の Bearer token" }, }; // HTTP リクエストを送り、JSON で返ってきた結果をオブジェクトに変換 let response = JSON.parse(UrlFetchApp.fetch(url, options)); // 結果の件数を取り出す let length = response.meta.result_count // メールの本文を空文字列にする let mailBody = "" // つぶやきの内容に日本時間に変換した時刻を追加して件数分くり返す // はてなブログの Markdown 記法で文字列を斜体にするには*文字列*のようにアスタリスクで囲む // \n でメール本文の改行 はてなブログの Markdown 記法では空行で段落になる for (let i = 0; i < length; i++) { mailBody = mailBody + "* " + response.data[i].text; mailBody = mailBody + "\n*at " let tweetTime = new Date(response.data[i].created_at); mailBody = mailBody + Utilities.formatDate(tweetTime,'JST','yyyy/MM/dd HH:mm') + "*"; mailBody = mailBody + "\n\n" } // ここまででメール本文が空文字列のままでなければ、はてなブログの投稿メールアドレスに「(前日の日付)のつぶやき」というタイトルでメールを送信 if (mailBody !== ""){ GmailApp.sendEmail("はてなブログ投稿メールアドレス", endDate + "のつぶやき", mailBody); } }
参考サイト
https://takeyamasaaki.hatenablog.com/entry/2022/01/04/205158
あなたの回答
tips
プレビュー