質問: ### 前提・実現したいこと ひと月分の会員がつぶやいた投稿URLを抽出して 各投稿が有効性なのかを確かめたいです。 具体的には、 https://twitter.com/アカウント名/status/投稿のID が有効で投稿が表示されてるなら、200番のOK https://twitter.com/アカウント名/status/投稿のID が非公開アカウントであれば、302番のリダイレクト https://twitter.com/アカウント名/status/投稿のID が見つからないであえば、404番のnot found というような感じで判別したいです。 ### 発生している問題・エラーメッセージ * ひと月分の会員がつぶやいた投稿URLを抽出 →こちらに関しては問題なくできています。 * 各投稿の有効性 →4ヶ月ほど前は以前使用していた、チェックを行うphpファイルで判別できていましたが、 現在Twitterの仕様が変わったのか、全て200番で返ってきてしまいます。 ### 該当のソースコード 以前まではこの関数で取得し、判別できていました。 ``` @get_headers(); ``` ### 試したこと * レスポンスヘッダー全てをチェックしてみる→特に有用な情報なし * `get_headers` の引数を変えてみる→変化なし * リダイレクト先URLを取得する方法をググってみる→`get_header` でできるらしいけど、 たぶん200で返ってきてるからヘッダーにリダイレクト先URLが含まれない * `curl -I` コマンドで投稿IDの部分を適当な文字列を入力→200で返ってくる。 ### 補足情報(FW/ツールのバージョンなど) 他に必要な情報等ございましたら、言っていただけると助かります!
回答: > > 4ヶ月ほど前は以前使用していた、チェックを行うphpファイルで判別できていましたが、 > > 現在Twitterの仕様が変わったのか、全て200番で返ってきてしまいます。 > > > この点について、2020年初頭あたりから Twitter web の挙動が変わったのが関係しているはずです。 お行儀よく(つまり、Twitter のサーバーに必要以上の負荷をかけずに)状態を確認するためには、Twitter API の使用を検討してください。たとえばツイートの存在確認であれば GET statuses/show/:id や GET statuses/lookup が使えます: * * ただし protected user かどうかは別途 API で判定する必要があります。 *