目次一覧
これまで
Twitter全ツイート履歴は、2019年7月以降、ツールを使用しなければ取得不可能(index.htmlはダウンロードファイルに含まれないよう仕様変更されている)
tweet.js Web /「phpinfo();」で現状確認 / 第1版を公開するまでの試行錯誤履歴
Twitterデータ 対応 第1版 / 第1版 更新
Twitterデータ 対応 第2版
問題発生 / ダウンロードしたtweet.jsではなく、公式検索を試してみる
ブログ化サービス / 3,200件以上の自分の過去ツイートを閲覧するためには? / 感想
Twitterデータ 対応 第3版 / Twitterデータ 対応 第4版 / 第4版 問題発生
アップロードされたファイルを定期的に削除する
Twitter全ツイート履歴は、2019年7月以降、ツールを使用しなければ取得不可能(index.htmlはダウンロードファイルに含まれないよう仕様変更されている)
tweet.js Web /「phpinfo();」で現状確認 / 第1版を公開するまでの試行錯誤履歴
Twitterデータ 対応 第1版 / 第1版 更新
Twitterデータ 対応 第2版
問題発生 / ダウンロードしたtweet.jsではなく、公式検索を試してみる
ブログ化サービス / 3,200件以上の自分の過去ツイートを閲覧するためには? / 感想
Twitterデータ 対応 第3版 / Twitterデータ 対応 第4版 / 第4版 問題発生
アップロードされたファイルを定期的に削除する
tweet.js Web /「phpinfo();」で現状確認 / 第1版を公開するまでの試行錯誤履歴
tweet.js Web
ブラウザ経由でtwitter jsonをアップロードすると、Tweet内容を表示
・ファイル内一括置換
・指定文字列を削除
・アップロードできないファイルがある
このサービスで行っていること
・サーバーへアップロードしたツイート履歴.jsonファイルの読み取り
・PHPで配列へ変換後、必要な情報を取得
「phpinfo();」で現状確認
メモリ使用量の上限
memory_limit 128M 128M
POSTデータの最大サイズ ※合計サイズ
post_max_size 8M 8M
1ファイルあたりの最大アップロードサイズ
upload_max_filesize 2M 2M
▼tweet.js
27.9MB
第1版を公開するまでの試行錯誤履歴
面倒くさい
・仕様が良く分からない
・jsonファイルをそのまま読み込んでも、期待した通りデータを取得できない
window.YTD.tweet.part0 =
・どうやって削除するの?
・ユーザーには削除させたくない
現在のリンク条件分岐
・何も記述せずリツイートするパターン。['user_mentions']の['screen_name']があれば
・何か記述してリツイートするパターン。['user_mentions']の['screen_name']がなければ
取り敢えず稼働したが、現状の問題点
・ユーザーのツイート['screen_name']を、ツイート履歴.jsonファイルから読み取れない。※記載されていないため
・ユーザーのツイート['screen_name']が固定。自分専用なので
・リンクをクリックしないと、画像や動画は表示されない
サービス公開するためには?
・ユーザーのツイート['screen_name']に対して、動的対応する必要がある
・アップロードされたファイルの削除仕様は? 削除しないと、サーバー容量は足りなくなる
・セキュリティ対策
公開予定日
来週月曜日
Twitterデータ 対応 第1版 / 第1版 更新
Twitterデータ 対応 第1版
2019/9/16 公開
使用方法
1.Twitterのユーザー名を入力する。※Twitterアカウントの@以降
2.ダウンロードしたtweet.jsを選択してアップロードボタンを押す
注意事項1
・「1.Twitterのユーザー名」を入力しなくても、ツイート自体は表示される
・但し、自分のツイートへリンク遷移できない。RTへは遷移できる
注意事項2
アップロード可能な1ファイル容量制限は200M
※但しテストは未実行なため、詳細未確認
Twitterのユーザー名を入力するようにしている理由は?
・アプリ連携すれば取得可能だが、知らないサービスと連携したい人もいないだろうと判断。※Twitter API 登録が面倒だから、という理由もある
・需要があれば今後要検討
リンク遷移しないと、画像や動画が表示されない理由は?
・その方が早く表示されると考えたため
・需要があれば要調査
そもそも、tweet.jsをサーバーへアップロードする必要があるの?
・私もそう思った
・JSでクライアント処理すれば良いだけな気もする
・但し、私が探した時点(2019-09-02)ではその情報は見つからなかった
今後について
・アップロードされたtweet.jsを定期的に削除しないと、ファイル容量が満杯になる
・需要があればヘルプ作成
・需要があればコメント投稿機能追加
・待機中のローディング表示
第1版 更新
セキュリティ強化
本人しかアクセスできないため、不要な気もするが
htmlspecialchars($userName,ENT_QUOTES,'UTF-8')
Twitterデータ 対応 第2版
Twitterデータ 対応 第2版
2019/9/16 公開
画像及び動画表示対応
今後について
・アップロードされたtweet.jsを定期的に削除しないと、ファイル容量が満杯になる
・需要があればヘルプ作成
・需要があればコメント投稿機能追加
・待機中のローディング表示
・ツイート削除機能
問題発生 / ダウンロードしたtweet.jsではなく、公式検索を試してみる
問題発生
ダウンロードしたtweet.jsには2019年6月~8月分のツイートしか含まれていない?
・3200件制限?
・過去にさかのぼる方法も不明だし、8/19以降のツイートをダウンロードできない理由も不明
※Twitterは頻繁に仕様変更するため、検索しても情報が錯綜しているから、色々ツラい
ダウンロードしたtweet.jsではなく、公式検索を試してみる
Twitterユーザー名がhogeだった場合
from:hoge until:2017-12-01
from:hoge since:2018-01-01 until:2018-01-03
一番古い投稿日
2017年10月2日
ブログ化サービス / 3,200件以上の自分の過去ツイートを閲覧するためには? / 感想
ブログ化サービス
3,200件以上遡れない点は同じ
Twitter削除しても閲覧可能なことから、別途保存しているものと思われる
3,200件以上の自分の過去ツイートを閲覧するためには?
公式で、ユーザー名と期間検索するしかない
感想
クソやな
・自分の投稿データを出力できない、なんてクソ仕様だわ
・Twitterはインフラの如く扱われているから、まさかこんな凶悪仕様だとは思いもしなかった
印象としては
過去へ遡ることに関して制限が設定されている理由は、他サービスへの流出防止という理由ではなく、単なる負荷対策という気もするけれども、真相は不明
今後について
・ツイートすることを止める
・(遡れないから)備忘録にならないため
・「リツイート」せず、自分のサービス内で「ツイートを引用」投稿することにする
Twitterデータ 対応 第3版 / Twitterデータ 対応 第4版 / 第4版 問題発生
Twitterデータ 対応 第3版
2019/11/15 公開
第2版での下記エラー対応
33.8MBファイルをアップロードするとエラー発生
Fatal error: Allowed memory size of 209715200 bytes exhausted (tried to allocate 4096 bytes)
動作確認できているのは27.9MBまで
Fatal error: Allowed memory size of 209715200 bytes exhausted (tried to allocate 4096 bytes)
動作確認できているのは27.9MBまで
Twitterデータ 対応 第4版
2019/11/16 公開
第3版での下記エラー対応
40.3MBファイルをアップロードするとエラー発生
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/xxxx/3/upload.php on line 220
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/xxxx/3/upload.php on line 220
▼upload.php
ini_set("memory_limit", "512M");
Fatal error: Allowed memory size of ★★ bytes exhausted (tried to allocate ○○ bytes) in △△ on line □□
第4版 問題発生
2019/11/17
・tweet.jsファイルアップロードには成功するも結果表示されないケースが少なくとも2件ある
・解析に失敗することがあります
下記でエラー発生しているが、原因不明
// 文字列から変換
$jsonArray = json_decode($json, true);
tweet.jsファイルの "source"
・「Twitter Web Client」の場合は、成功する可能性が高い
・「Twitter Web App」の場合は、失敗する可能性が高い
・「Twitter for iPhone」の場合は、失敗する可能性が高い
アップロードされたtweet.jsファイル
JSON形式かどうかを2サイトでチェックしたみたが、何れも正しい形式との判定結果だった
どういうことなの?
アップロードされたファイルを定期的に削除する
アップロードされたファイルを定期的に削除する
当初は
アップロードされたファイルを1件1件確認していたが、
段々面倒になってきた
フィードバックがないため、正常動作しているか、すら不明
結局
アップロードされたファイルは、内容確認することなく、1日1回定期的に全削除する
※2019/12/3に決定
たたき台
CentOSで「指定ディレクトリ下層に複数存在する指定ディレクトリ」内にある全ファイルを削除するシェルスクリプト
cron作成
・シェルスクリプト作成できたので、cronで定期的に削除実行処理する
・具体例A。2019/12/3