どんなツイートにも画像を自動的に付けるwebサービス #pictureadd を作ったらヒットした
phpの技術を高めるためになにか作品を作ることになって、題材を考えてたら、Twitterの文章に関連した画像を張り付けてくれるようなサービスを作ったら面白いんじゃないかと思い立った。
http://pictureadd.matatsuna.net/
どんな文章にも関連した画像を付けてツイートをするwebツール
— 又 (@matatsuna) 2016年5月20日
「pictureadd」
を作りました~
文章からキーワードを抜き出して、画像検索し、ツイートします。
ぜひ遊んで見てください~https://t.co/mr98k2H4H2
実装手順
1. Twitterにログイン
2. ツイートする文章を打ち込む
3. Yahoo!のテキスト解析にあるキーフレーズ抽出apiでキーワードを抜き出す
4. 関連度の高いキーワードで画像の検索を行う
5. 結果勝手にツイート
実装方法
他人のアカウントでOAuth認証して画像付きツイートする
記事を探してもこれと言ったものが見つからなかったので、前回使用したライブラリーの記事をよく探してみました。
前回の記事
ハッシュタグを固定して連続ツイートできる pinhashtag をphpで作った - matablo
そうしていたら以下の記事を見つけました。
ログインページを作る方法
qrbys.hatenablog.com
画像付きツイートをする方法
qiita.com
この二つを合わせれば行けるのではないのかと踏んでやってみたら、あっさりツイートできた。
(ツイートするところを少しいじるだけ)
キーワード抽出
何度もお世話になってるいつものapiです。
http://developer.yahoo.co.jp/webapi/jlp/keyphrase/v1/extract.htmldeveloper.yahoo.co.jp
phpからsimplexml_load_fileでxmlを読み込みました。
画像を検索する
phpでスクレーピングをしました。
初めのころは1つのキーワードで検索してましたが、現在は全てのキーワードで検索してます。
最近のアップデートで高速化を図りました。パースにライブラリーを使用することで10秒弱に短縮されました。
たくさんの反響
これってそもそも単語をツイートして対象のものが出るかどうか調べるツールではなくって、こうやって適当な文章に対して何が出てくるか楽しむツールじゃないのかなhttps://t.co/zSglp24Yb6 #pictureadd pic.twitter.com/U0lTHDp9K4
— chokudai(高橋 直大) (@chokudai) 2016年5月20日
pictureadd、足してる画像はGoogle画像検索のトップと一致するのかなあと思ったらたまに違うみたいで、じゃあbingかな?って思ったんだけどbingはもっと違った。どこから拾ってきてるんだろ。
— chokudai(高橋 直大) (@chokudai) 2016年5月20日
pictureaddがどこから画像を取ってきているのか、どのようにキーワードに沿った画像を選択しているのか気になりますhttps://t.co/6vQRdxqLtV #pictureadd pic.twitter.com/wAbYOOgQCS
— たまにゃん (@tmbsx) 2016年5月20日
pictureadd面白い笑
— chi-toro (@0010_times) 2016年5月21日
正直ここまで広く使われるとは思ってませんでした。
拡散した先がセキュリティ、競プロ、他大なので余計ハラハラドキドキで見守ってました。
最終的にはこのような感じになりました。
一時間あたりのアクセス数のグラフ
— 又 (@matatsuna) 2016年5月23日
最大は5月21日AM1時の8478リクエスト/時間
ここまで伸びるとは思ってもいませんでした。
これからも改良しますのでよろしくお願いします。
エラーが多いのは申し訳ない。#pictureadd pic.twitter.com/HSuwTuHmMq
一気に使われて一気に収束しました。
ネットの拡散力の怖さを実感しました。
アクセス多すぎてazureの制限に引っかかってたけど、自分が作ったものを他人に使ってもらえることは嬉しい!
ツイートをまとめました!
togetter.com
変更・改良 (2018/08/17)
- ヒットした画像が多かった場合はそのまま使用
- 認証を全廃し、Twitter Cardを使用