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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google+

Google+とは、Googleが提供するソーシャル・ネットワーキング・サービスです。情報を共有するユーザーの範囲を設定する「サークル」、Webカメラで複数名の相手と無料でビデオチャットできる「ハングアウト」などの機能があります。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Twitter

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

Q&A

0回答

1343閲覧

【GAS】Twitter APIで今日の自分のリプライ数を取得したい

ren0826nosuke

総合スコア34

Google+

Google+とは、Googleが提供するソーシャル・ネットワーキング・サービスです。情報を共有するユーザーの範囲を設定する「サークル」、Webカメラで複数名の相手と無料でビデオチャットできる「ハングアウト」などの機能があります。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Twitter

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

0グッド

0クリップ

投稿2022/03/09 06:43

目的

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

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問