Es ist wichtig, Informationen auf Websites, Twitter, Blogs, Papieren usw. zu sammeln, um die neuesten Themen zu kennen, aber es ist sehr problematisch. Dieses Mal haben wir die folgenden Funktionen in Slack realisiert, um die Effizienz der Informationserfassung zu verbessern.
Es ist praktisch, dass Sie die erforderlichen Informationen zentral verwalten können, ohne die Zeitachse jeder Site zu überprüfen, und dass der Leseverlauf erhalten bleibt.
Das Erstellen eines automatischen Erfassungssystems für Twitter ist am schwierigsten (obwohl die meisten kopiert werden können) und verwendet technisch die Twitter-API, Heroku und Python (Tweepy).
Ein RSS-Reader wird als App-Funktion von Slack bereitgestellt und ist sehr einfach auszuführen. RSS kann kanalweise gestreamt werden, und Lesezeichen und gelesene Elemente werden als Slack-Funktionen bereitgestellt, sodass Sie es ähnlich wie Feedly verwenden können.
Es gibt bereits viele Informationen dazu.
https://slack.com/intl/ja-jp/help/articles/218688467-Slack-に-RSS-フィードを追加する
https://ferret-plus.com/14641
Sie können auch Post-Informationen zu bestimmten Qiita-Tags per RSS sammeln. Es ist einfach, weil Sie nicht jedes Mal auf die Zeitachse schauen müssen.
Ich sammle Informationen auch über verschiedene E-Mail-Newsletter und Google-Benachrichtigungen, sodass ich sie in Slack einfügen muss. Auch hier gibt es bereits viele Informationen. Es gibt verschiedene Methoden, aber ich mache Folgendes.
Andere Methoden umfassen: Ich habe verschiedene Dinge ausprobiert, aber das Obige war das Beste in Bezug auf die Benutzerfreundlichkeit.
Zapier
--Senden Sie eine bestimmte E-Mail an einen bestimmten Kanal.
Slack Email App
――Ich habe es nicht ausprobiert, weil es aufgeladen ist. Es hat jedoch den Vorteil, dass es einfach einzurichten ist und Sie E-Mails an einen bestimmten Kanal weiterleiten können. Es erscheint daher praktisch, wenn Sie dafür bezahlen können.
Slack for Gmail
Spannende Implementierung mithilfe der API
――Ich habe es nicht ausprobiert, weil es Zeit zu brauchen scheint.
Zuerst dachte ich, es wäre einfach mit IFTTT, aber es war nicht einfach zu bedienen und ich gab schließlich auf. Ich habe einen automatischen Twitter-Sammlungsbot erstellt. Das allgemeine Verfahren ist wie folgt.
Die folgenden beiden sind sehr hilfreich. Es ist eher eine Kopie.
https://qiita.com/yuhkan/items/805159f88dd0ad6b21c7
https://stefafafan.hatenablog.com/entry/2015/11/14/220601
Verwendet hauptsächlich Python. Tweepy wird als Paket benötigt.
https://kurozumi.github.io/tweepy/
pip install tweepy
pip install requests
Ich benutze Pytz auch für die detaillierte Verarbeitung. Ich brauche auch git.
Verwenden Sie Twitter API, Slack Webhook, Heroku.
Die Twitter-API erfordert ein Zugriffstoken.
https://qiita.com/kngsym2018/items/2524d21455aac111cdee#consumer-api-keysアクセストークン情報を使用したpythonスクリプト
Für Slack Webhook ist die URL des Kanals erforderlich. Notieren Sie sich diese ebenfalls.
https://slack.com/intl/ja-jp/help/articles/115005265063-Slack-での-Incoming-Webhook-の利用
Heroku verwendet die kostenlose Version (keine Kreditregistrierung). Da ich jedoch einen Monat lang nicht voll ausgelastet sein kann, plane ich, mich in Zukunft für eine Gutschrift zu registrieren.
Ich verwende Streaming anstelle der Rest-API. Dies ist viel einfacher zu implementieren. Übergeben Sie insbesondere die Liste der Benutzer-IDs, die Sie als "Abfrage" erfassen möchten, an "tweepy.StreamListener.filter (follow = query)". Das Konvertieren eines Benutzernamens in einen Benutzernamen ist mit tweepy ebenfalls einfach. Neben der Überwachung bestimmter Benutzer können Sie auch Schlüsselwörter überwachen.
Die eigentliche Implementierung des Slack-Übertragungsteils erfolgt in der Methode "on_status" von "tweepy.StreamListener".
--Verarbeitung zum Filtern unnötiger Tweets wie Retweets --Verarbeitungsprozess zum Formatieren von Daten für die Slack-Übertragung --Verfahren Sie, um zu Slack zu übertragen
Ich werde dich beißen. Das Filtern nach unerwünschten Tweets sieht beispielsweise wie folgt aus.
def is_invalid_tweet(self, status):
if isinstance(status.in_reply_to_status_id, int):
#Richtig für die Antwort
return True
if "RT @" in status.text[0:4]:
#Richtig für RT
return True
return False
https://www.pytry3g.com/entry/twitter-api-seq2seq
Unten ist die Formatierung zu json.
import json
from datetime import timedelta
def format_status(status):
channel = '#twitter_collection'
text = status.text
status.created_at += timedelta(hours=9) #In Japan Zeit
username = str(status.user.name) + '@' + str(status.user.screen_name) + ' (from twitter)'
json_dat = {
"channel": channel,
"username": username,
"icon_url": status.user.profile_image_url,
"text": text
}
json_dat = json.dumps(json_dat)
return json_dat
Das Übertragen auf Slack ist sehr einfach. Verwenden Sie einfach request.post
.
def post_to_slack(json_dat):
url = SLACK_WEBJOOK_URL
requests.post(url, data=json_dat)
return
Bei Verwendung von Heroku,
Sie benötigen die Datei. Profil beschreibt die Hauptverarbeitung zur Laufzeit. Die erforderlichen Pakete sind in den Anforderungen.txt aufgeführt.
worker: python main.py
requirements.txt
tweepy==3.8.0
requests==2.22.0
pytz==2019.3
Beachten Sie, dass Sie Worker als Dyno anstelle des Webs verwenden. Im Web erhalte ich "Fehler R10".
https://qiita.com/m_rn/items/9a580d04781b34f64693
Es sieht wie folgt aus.
heroku login
git init
git add .
git commit -m "test"
heroku create #Registrieren Sie die App
git push heroku master #App übertragen
heroku scale worker=1 #Führen Sie die App aus
Ein Webprozess kann mit "git push heroku master" bereitgestellt werden, für einen Arbeitsprozess ist jedoch "heroku scale worker = 1" erforderlich.
Protokollüberwachung ist
heroku logs -t
heroku ps
Der Stopp ist wie folgt.
heroku scale worker=0
https://qiita.com/naberina/items/da4a6d3c480aa7a62b06
Löschen
heroku apps:destroy --App App Name
Es wird sein.
https://qiita.com/chihiro/items/5c3ff400f6cb99deb945
Recommended Posts