[PYTHON] Le format du message obtenu par Slack API est subtilement difficile à utiliser

J'ai frappé l'API pour obtenir le message, mais je veux au moins

--Identifiant d'utilisateur

Parmi ceux-ci, j'ai essayé des essais et des erreurs parce que je ne pouvais pas obtenir l'ID utilisateur. L'histoire décrite ici se trouve à l'origine sur GitHub.

️ Exigences

Même si vous faites une sorte de matériel d'analyse, il semble que vous ne pouvez pas parler sans au moins les trois informations suivantes.

Le besoin cette fois est d'extraire ces trois informations de toutes les publications (d'un canal spécifique).

Conclusion

À la suite d'essais et d'erreurs, j'ai conclu que le sentiment suivant serait bon.

Pour le temps et le texte,

data = json.load(open("posts.json"))
for msg in data:
	print msg.get("ts", "")
	print msg.get("text", "")

C'est OK avec un sentiment comme.

En ce qui concerne l'acquisition d'utilisateurs, celles qui ne peuvent pas être acquises dans les conditions suivantes sont terminées.

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 ...

Dans les conditions de vérification, nous concluons que le poste correspondant représentait 0,2 [%] du total, il peut donc être ignoré.

Conditions de vérification

Les données proviennent du canal _ aléatoire_ de votre entreprise. Je m'abstiendrai de divulguer la période spécifique et le nombre de messages, mais j'ai regardé les messages postés sur une période d'environ un an et demi.

c'est tout.

Recommended Posts

Le format du message obtenu par Slack API est subtilement difficile à utiliser
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
[RSpec] Faites en sorte que la réponse de la requête à l'API Google stubisée par stub_request (: post) soit au même format que la vraie.
Introduction à l'architecture de traduction automatique par l'Université de Cambridge par l'application Slack Translation Kiara
Obtenez le nombre de tweets liés à un certain mot-clé à l'aide de l'API Twitter
Obtenons les informations Wiki en utilisant l'API MediaWiki
Comment utiliser l'API Google Cloud Translation
Comment utiliser l'API du guide des programmes NHK
[Python] Lancer un message sur le canal Slack
Utilisez l'API Twitter pour réduire le temps nécessaire à Twitter (créer une chronologie de mise en évidence (comme))
Ajouter une fonction pour indiquer la météo d'aujourd'hui au bot slack (fabriqué par python)
Utilisons l'API de la fenêtre générale des statistiques gouvernementales (e-Stat)
Utilisons la version Python du module API Confluence.
[Python] Utilisez l'API Face de Microsoft Cognitive Services
Écoutez de la musique en accédant à l'API non officielle de Google Play Music
Utilisons AWS Lambda pour créer un mécanisme pour notifier Slack lorsque la valeur surveillée par CloudWatch est dépassée sur Python
Re: Python lambda est inutile ^ H ^ H ^ H ^ H ^ H Difficile à utiliser
La méthode de copie de pandas.DataFrame est une copie profonde par défaut
Comment tester les attributs ajoutés par add_request_method de pyramid
[Django] Transmettez l'instance utilisateur authentifiée par l'API à ModelSerializer
Je souhaite utiliser uniquement le traitement de normalisation SudachiPy
Y a-t-il un secret dans la fréquence des nombres de rapport de circonférence?
J'ai essayé de vérifier l'identification du locuteur par l'API de reconnaissance du locuteur d'Azure Cognitive Services avec Python. # 1
J'ai essayé de vérifier l'identification du locuteur par l'API de reconnaissance du locuteur d'Azure Cognitive Services avec Python. # 2
Une petite histoire addictive avec les permissions du répertoire spécifié par expdp (pour les débutants)
[Python] Comment utiliser l'instruction for. Une méthode d'extraction en spécifiant une plage ou des conditions.