API叩いてメッセージを取得したものの、最低限取得したい
- ユーザID
- 時刻
- テキスト
このうちユーザIDの取得がままならないので試行錯誤してみました。
ここで述べる話はGitHubにオリジナルが置いてあります。
️ 要件
なにかしらの分析ネタをやるにしても、最低限以下の3つの情報はないと話にならないと思われる。
- 時刻
- ユーザ名(ID)
- POSTしたテキスト
(特定チャンネルの)全ポストからこの3つの情報を抽出したい、っていうのが今回の要件。
結論
試行錯誤の結果以下のような感じがよかよう、と結論。
時刻とテキストについては、
data = json.load(open("posts.json"))
for msg in data:
print msg.get("ts", "")
print msg.get("text", "")
のような感じでOK。
ユーザの取得については、以下の条件で取得できないものはスルー。
def get_user_id(m):
if m.has_key("user"): return m["user"]
if m.has_key("bot_id"): return m["bot_id"]
return None
for msg in data:
uid = get_user_id(msg)
if uid is None:
continue
# do something ...
検証条件の下では、これに該当するポストは全体の0.2[%]だったので無視して良いと結論づける。
検証条件
データは自社の random チャンネルから。
具体的な期間やポスト数の公開は差し控えますが、およそ1年半くらいの期間でポストされたメッセージを見てみました。
以上。