Raspberry Piで電子工作を進めているとラズパイから何らかの通知を送りたくなることがあります。
いつもコンソールを立ち上げている訳にはいかないので。
そこで、LANに標準で接続するラズパイだからこそ、ラズパイとpythonでwebサービスを組み合わせてスマホに通知することをやってみます。
まずは、こちらのブログでも何度か取り上げていて私が最も力を入れているTwitterです。
TwitterにはDirect Messageがありますので、pythonでDirect Messageを送信し、スマホのTwiiterアプリやブラウザで受信します。
Direct Messageももちろんtweepyに盛り込まれていますので、公式Referenceをみて実装しました。
API Reference — tweepy 3.5.0 documentation
API.send_direct_message(user/screen_name/user_id, text)
こちらが、Direct messageのAPI classです。
()のなかがパラメータでスクリーン名もしくはユーザーID、ユーザー名と実際に送りたいMessage(text)であると推測できます。私はスクリーン名を使用しました。
スクリーン名とは@に続いて表示される、↓の例では "MomentsJapan" のようなもののことです。
ユーザーIDはint型の数字で表せれる固有の番号です。user classのデータを取得すると調べることができます。
userが "Twitter モーメント" のことでしょう(未確認なので使う場合は確認してね)
# -*- coding: utf-8 -*- import datetime import tweepy CONSUMER_KEY="****************" CONSUMER_SECRET="****************" ACCESS_TOKEN="****************" ACCESS_SECRET="***************" auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET) api = tweepy.API(auth) def direct_messag(): tdatetime = dt.now() api.send_direct_message(screen_name="宛先のスクリーン名",text="test "+tdatetime.strftime('%H%M%S'))
defで始まるものが、関数(メソッド)でapi.send_direct_messageで送信することができます。
ちなみに、Direct Messageは自分あてにも送信できるので、ラズパイから自身のアカウントへDMをを送信しスマホで確認することもできます。
text(DMの本文)はstring型なので、その中に含める内容はアイデア次第です。
ちなみに、↑が私が現在ラズパイで運用しているTwitterアカウントです。
twitter.com