大前提 / 2019年10月12日時点の方針 / 実装開始

カテゴリー: Twitter Developer  閲覧数:117 配信日:2019-10-12 15:34


大前提


RTだけ取得するURL
用意されていないと思われる

RTだけ取得する専用API
・用意されていないと思われる

2019年10月12日時点の方針


ユーザータイムラインを取得
RTだけフィルタリング

参考
・何やってるかよく分からないのだけれども、ユーザータイムライン取得後、フィルタリングしている?
retweetlog-nodejs/myTwitter.js at master · bookii/retweetlog-nodejs
const getRetweets = (screenName, maxIdPrev, untilDate, includeSelf) => {
   return new Promise(async (resolve, reject) => {
       let retweets = [];
       let maxId;

       if (maxIdPrev) {
           maxId = bigInt(maxIdPrev);
       } else if (untilDate) {
           maxId = dateToStatusId(Date.parse(untilDate) + 15*60*60*1000);
       } else {
           maxId = dateToStatusId(Date.now());
       }

       try {
           while(true) {
               tweets = await getUserTimeline(screenName, maxId);
               if (tweets.length > 1) {
                   let retweetsChunk = [];
                   maxId = bigInt(tweets[tweets.length-1]['id_str']).add(-1);
                   retweetsChunk = tweets.map(tweet => tweet['retweeted_status']).filter(tweet => tweet);
                   if (includeSelf == false) {
                       retweetsChunk = retweetsChunk.filter(retweet => retweet['user']['screen_name'] != screenName);
                   }
                   // console.log('retweets.length: ' + retweets.length);
                   Array.prototype.push.apply(retweets, retweetsChunk);
                   if (retweets.length > RETWEETS_PER_REQUEST) {
                       break;
                   }
               } else {
                   break;
               }
           }
       } catch (error) {
           reject({items: error, maxId: maxId.toString()});
       }
       resolve({items: retweets, maxId: maxId.toString()});
   });
};


フィルタリング
「retweeted_status」プロパティ名をチェックするだけ
・見つからない場合はRTではない
Check if a tweet is a retweet

実装開始


既に「statuses/user_timeline」を取得していた
'screen_name'パラメータを変更することで、「retweeted_status」プロパティも確認できた

週間人気ページランキング / 4-17 → 4-23
順位 ページタイトル抜粋 アクセス数
1 Webサービス開発 カテゴリー 10
2 作成したい課金プラットフォーム | 決済(Webサービスビジネス) 6
3 Twitter 回答を得られたQ | Twitter Developer(Twitter) 5
4 mhtmlの問題 / mhtmlで保存するのは何のため? / 欲しい拡張機能がないため、自分で作成するしかない 4
5 teratailでは質問しない | プログラミング 3
6 Twitter アプリケーション分類 | Twitter Developer(Twitter) 2
6 自伝 2
6 問題発生 / 原因不明 / 原因を全く思いつかないがそれでは済ませられないので無理やり考えてみる 2
6 「Twitterデータ」対応 | Twitter Developer(Twitter) 2
6 Twitter 複数アカウントでPOSTしたい | Twitter Developer(Twitter) 2
6 動植物 2
7 GitHubのリポジトリ名を変更するためには、GitHubのWebページへアクセス。[Repositories] - [Settings]タブをクリック後、[Repository name]へ入力後、[Rename]ボタンをクリックする | GitHub(開発環境) 1
7 うさみみハリケーン | ソフトウェア 1
7 GitHubリモートリポジトリ名には日本語を使用できない。使用すると、ハイフンへ自動置換されてしまう | GitHub(開発環境) 1
7 2020年1月21日から最初に生成した以降、アクセストークンとアクセストークンシークレットは表示されなくなる | Twitter Developer(Twitter) 1
7 過去の「0文字引用RT」を期間指定して取得しようとするも、挫折 | Twitter API (Twitter) 1
7 不動産 1
7 「User is not Authorized」と「Phone number is already in use for too many accounts and cannot be added to another user.」は連動していない | Twitter Developer(Twitter) 1
7 1
7 Webサイトで課金決済するためにはどうすればよいか、調査 | Webサービスビジネス 1
2021/4/24 1:03 更新
指定期間人気ページランキング / 2020-5-27 → 2021-4-23
順位 ページタイトル抜粋 アクセス数
1 「Twitterデータ」対応 | Twitter Developer(Twitter) 109
2 teratailでは質問しない | プログラミング 51
3 Twitter 電話番号の問題 | Twitter Developer(Twitter) 33
4 ログイン 27
5 同じ携帯電話番号でも、複数の「Twitter Developers」アカウントを作成可能 | Twitter Developer(Twitter) 25
6 フォルダ/ファイル構成 | プログラミング 24
6 fatal: remote error: is not a valid repository name | Git BASH(開発環境) 24
7 Webサービス開発 カテゴリー 20
8 「Windows10」へ「gitfor windows VERSION 2.22.0」をインストール | GitHub(開発環境) 19
9 作成したい課金プラットフォーム | 決済(Webサービスビジネス) 17
10 課金決済代行サービスを分類 | Webサービスビジネス 16
10 個人事業主が導入可能な「支払、送金」機能を有する決済系サービス簡易比較表 16
11 マッチングサービス | Webサービスビジネス 15
11 開発 0 15
12 「Twitter Developer」審査結果に通り、appを作成。しかし、いつの間にか「User is not Authorized」が表示されていたケース | Twitter API (Twitter) 14
12 うさみみハリケーン | ソフトウェア 14
13 Git BASH 経由で、Windows10 から GitHub へ PUSH する | GitHub(開発環境) 13
13 コインチェック株式会社   | Webサービスビジネス 13
13 決済(Webサービスビジネス) カテゴリー 13
13 Twitter 複数アカウントでPOSTしたい | Twitter Developer(Twitter) 13
2021/4/24 1:03 更新