pstgtom’s diary

TwitterでのTweetのまとめや、144文字を超えて説明が必要になった場合に書いているブログです。

Twitterで消せないツイートを消す(解決編)

削除ボタンがグレーアウトして消す事が出来なかったTweetを消したいとのご相談をうけて
と試行錯誤を続けてきましたが、もっと簡単な方法Tweetを消すことが出来る事を確認しました。
 
PCのwebブラウザ(ChromeFireFoxSafariOperaなど)でTwitterにログインし、
Twitterの「アナリティクス」→「ツイートアクティビティ」を開き、
③そのページから取得したTweet_activity_metrics_アカウント名_開始日_終了日_ja.csvファイルのB列に記載されているURLに飛ぶと
そのURLに当たるTweet画面が開いてくるので、
その画面で削除を行うと、それまで削除ボタンがグレーアウトして消す事が出来なかったTweetを消す事が出来るようです。
 
Tweet_activity_metrics_xxxx_yyyyyyyy_zzzzzzzz_ja.csvファイルの具体的な取得方法についてはtweetがdatabaseに残っているか確かめる他を参照してください。
 

1.消せなかったTweetがこの方法で消せるようになる理由

(※細かな理屈は読む必要はないという方は2.Googleスプレッドシートcsvを開く、または3.Excelcsvを開く場合へ進んでください。)

 

 Twitterにはユーザーが操作するwebブラウザーやアプリからの命令を受け取るTwitterAPIというものが用意されています。公式/非公式アプリではこのTwitterAPIを利用してTweetの読み書きをしていますが、この『窓口』では最新の3,200Tweetまでしか扱うことが出来ません。
 
相談者さんはなにかのTweetの一括削除ツールを利用され、それからTwitterのデータがおかしくなったと仰られています。詳しいメカニズムは解りませんが、恐らくこの3200Tweetの制約の関係で、一部のTweetが、タイムラインから見えなくはなったけど、レコードとしてはデータベースに残存している恰好になったと推測されます。実際にタイムラインからは見えないTweetにいいねがつけられたりしていたそうです。
 
そこで標準のTwitterAPIではなく、3200Tweet制約がないと言われているTwitter REST APIを使い、消せないTweetの削除を企みました。Twitterのデータベースからツイートアクティビティのリストをcsvで取得して、そこからツイートIDを抜き出し、POST statuses/destroy/:id を使わせてくれるサイトから削除する方法です。
 
ところが相談者さんが試行錯誤しながら作業に取り組んだ際に、Excelで開いたcsvファイルのURLセルをクリックし、そこから開けたTweetページから、当の削除不能Tweetを削除できてしまったとのご報告を受けました。相談者さんのExcelでは、たまたま入力オートフォーマットが効いて自動的にハイパーリンクがつけられていたようです。
 
結果からみれば当然のことなのですが、ツイートIDはTwitterデータベースのTweetテーブルのPrimaryKeyであり、それさえ解れば普通にTwitterアプリから適宜Tweetを呼び出せて、DELETEコマンドも発行できるということのようです。
 
即ち、消せなくなったTweetは、TwitterデータベースのTweetテーブルのPrimaryKeyであるツイートIDさえ解れば、公式アプリ等でもTweetのレコードへ到達でき、普通に消せると考えられます。
 
ネット上では、「消せなくなったTweetREST APIでないと削除できない」という情報が圧倒的ですが、通常のデータベースの仕組みを考えればそんなことはまずないはずです。問題は確実にTweetに到達できるPrimaryKeyを引っ張ってこれるかどうかにかかっていると考えるべきでしょう。
 
csvファイルはGoogleスプレッドシートアップロードして開くとB列のURLには始めからハイパーリングがついており、クリックすれば同ブラウザーの別タブTweetのページが開いてくるので作業はより簡単に行えます。
Google検索ページ右上のf:id:pstgtom:20201128130324j:plainアイコンをクリック、出てきたメニューの中からスプレッドシートを探してクリック。
f:id:pstgtom:20201128130606j:plain
 
開いたページ左上の「空白」をクリック。 f:id:pstgtom:20201128130719j:plain さらに開いたページ左上のファイルメニューから開くをクリック。 f:id:pstgtom:20201128130818j:plain
 
右端のアップロードタブをクリック、この画面に先ほど取得したTweet_activity_metrics_xxxx_yyyyyyyy_zzzzzzzz_ja.csv ファイルをドラッグ&ドロップ。
f:id:pstgtom:20201128131135j:plain f:id:pstgtom:20201128131322j:plain
 

Tweetレコードのリストが開きますのでB列のURLをクリック f:id:pstgtom:20201128131501j:plain f:id:pstgtom:20201128131515j:plain 

 該当するTweetが開いてきまて、削除が有効になります。

f:id:pstgtom:20201128143829j:plain

 

2.Excelcsvを開く場合

ExcelTweet_activity_metrics_xxxx_yyyyyyyy_zzzzzzzz_ja.csvをそのまま開くと文字化けします。文字化けを解消しなくてもB列のURLを開けばTweetは読めるので問題ありませんが、文字化けを解消して作業を進めたいと言う場合はtweetがdatabaseに残っているか確かめる13以下を参照して解消してください。

f:id:pstgtom:20201126111800j:plain
 相談者さんの場合、開くだけでURLにハイパーリンクがついていて、それをクリックするだけで良かったようなのですが、csvファイルは単なるテキストファイルなので、そのままではリンクとしてクリックできない方が少なからず居られるはずです。
 
もしリンクとしてクリックできない場合、以下の方法でリンクをクリックできるように下準備してください。
 
a) Excel入力オートフォーマット有効になっていることを確認する
Excelのファイルタブを開き、左下のオプション文書校正オートコレクトのオプションとクリックしてきて、

f:id:pstgtom:20201128140930j:plain

b) 開いた窓の入力オートフォーマットタブをクリック、入力中に自動で変更する項目インターネットとネットワークのアドレスをハイパーリンクに変更するにチェックが入っていることを確認してください。

f:id:pstgtom:20201128140959j:plain

c) もしチェックが入ってなかったら、チェックをしてOKボタンをクリックしておいてください。

f:id:pstgtom:20201128142146j:plain

d) B列2行目のセルを選択した状態でF2キーを押してB2セルの編集モードに入り、何もしないでエンターキーを叩いてください。

f:id:pstgtom:20201128142515j:plain

e) B2セルのURLにハイパーリンクがつき、選択セルがB3に移動しているはずです。

f:id:pstgtom:20201128142532j:plain

f) 続いて同じくF2キーを押してB3セルを編集モードにし、何もせずにエンターキーを叩き

f:id:pstgtom:20201128142552j:plain

g) 同様にF2→Enter→F2→Enter→F2→…という操作を繰り返していけば、比較的簡単にB列のURL文字列にハイパーリンクをつけることが出来ます。

f:id:pstgtom:20201128142648j:plain

 

下処理が出来たらリンクをクリックしてみましょう。別窓が開いて該当のTweetが出てきます。

f:id:pstgtom:20201128143323j:plain

最初の一回だけ、ログインが必要です。ログインしてください。

f:id:pstgtom:20201128143409j:plain

ログインしたら削除が有効になります。

f:id:pstgtom:20201128143621j:plain

 

以上です。