RedashでTwitter APIを用いて、インフルエンサーの情報を可視化をする
どうも、くずきです。
今日は「Redash Advent Calendar 2017」12日目の記事として、RedashでTwitter APIを用いて、インフルエンサーのインサイト情報を可視化をすることをしたいと思います。
インフルエンサーって何やねんって人はすごく簡単にですが以前書いた記事を参考にしてほしい。
これをやるきっかけとしては、マーケティングデータを可視化する「Domo」というツールを使ってインフルエンサーのデータを可視化し、マーケティングツールとして使ってるという情報を聞いたので、、Redashだって!!!と思って書いてます。
[準備] Pythonデータソース機能を使えるようにする
まず事前準備として、Pythonデータソースを使えるようにしておく。
こちらも以前の記事で書いておいたのでそちらを見てほしい。
ツイッターのAPIを叩いてみる
まずは、今回使用するPython
のライブラリとして、requests_oauthlib
とjson
を追加しておこう。
(pip install
はしといてください)
次にここでは説明しないが、ツイッターAPIを叩くためのトークンを取得しておき、インフルエンサーであるid:kakaku22のデータを取得してみよう!
from requests_oauthlib import OAuth1Session import json CK = 'Consumer Key' CS = 'ConsumerSecret' AT = 'Access Token' AS = 'Access Token Secret' url = "https://api.twitter.com/1.1/statuses/user_timeline.json" params = { "screen_name": "kakakakakku", "exclude_replies": 1, "include_rts": 0 } twitter = OAuth1Session(CK, CS, AT, AS) req = twitter.get(url, params = params) timeline = json.loads(req.text) for tweet in timeline: print(tweet['text'].encode('utf-8'))
色々つぶやいてます。
表示したい情報を集計し、綺麗に表示する
本来は、こんな感じのデータを表示したい。
あんまり見せてはいけない情報すぎて、逆にわかりづらいと思うけど、、
ツイッターだと「フォロワー数」、「平均いいね数」、「平均リツイート数」などが指標となる。
あとは単に集計するだけなので、説明は割愛する。
from requests_oauthlib import OAuth1Session import json CK = 'Consumer Key' CS = 'ConsumerSecret' AT = 'Access Token' AS = 'Access Token Secret' url = "https://api.twitter.com/1.1/statuses/user_timeline.json" params = { "screen_name": "kakakakakku", "exclude_replies": 1, "include_rts": 0, "count": 200 } twitter = OAuth1Session(CK, CS, AT, AS) req = twitter.get(url, params = params) timeline = json.loads(req.text) sum_retweet_count = 0 sum_favorite_count = 0 avg_retweet = 0 avg_favorite_count = 0 for tweet in timeline: sum_favorite_count = tweet['favorite_count'] + sum_favorite_count sum_retweet_count = tweet['retweet_count'] + sum_retweet_count userInfo = timeline[0]['user'] avg_favorite_count = sum_favorite_count * 1.0/len(timeline) avg_retweet = sum_retweet_count * 1.0/len(timeline) result = {} add_result_row(result, { 'name': userInfo['screen_name'], 'follower_count': userInfo['followers_count'], 'avg_favorite': avg_favorite_count, 'avg_retweet': avg_retweet }) add_result_column(result, 'name', '', 'string') add_result_column(result, 'follower_count', '', 'integer') # フォロワー数 add_result_column(result, 'avg_favorite', '', 'float') # 平均平均いいね数 add_result_column(result, 'avg_retweet', '', 'float') # 平均平均リツイート数
色々な人のリストとまではいかなかったけど、一人分の情報を表示することができた。
感想
Redash
+ Twitter API
で簡易ではあるがインフルエンサーのデータの可視化ができた。
次の改善点としては複数人対応や、指定した人のデータを取得できるようにしたらインフルエンサーマーケティングツールとして使えるようになってきそうだ。データの保存とかもできたらいいなぁ。。もう使い方違う気がする。笑