#1. はじめに
今回はTwitterで「ライトつけて」とつぶやくだけで部屋のライトがつくプログラムを作ります。
ライトをつけるにはSwitch Bot hubが必要なので気を付けてください。
#2. Python開発環境を作る
##2.1 Pythonをダウンロードする
下記のURLへアクセスしてください。
次に最新バージョンの Python をダウンロードします。
画面に表示されている「Latest Python 3 Release - Python 3.10.1」をクリックしてください。
一番下までスクロールすると、ソースコードやOSごとに用意されたダウンロード用リンクの一覧が表示されます。
「Windows installer (64-bit)」と書かれたリンクをクリックしダウンロードしてください。
##2.2 Pythonをインストールする
続いてインストールを行います。
ダウンロードしたファイルをダブルクリックするとインストーラーが起動してインストールが開始されます。
Python をインストールしたあとに Path を自動で設定してもらえるように「Add Python 3.10 to PATH」にチェックをしましょう。
そしてインストール先を変更するなどカスタムする場合以外は「Install Now」をクリックしインストールしましょう。
最後にこの画面が表示されたら「Close」をクリックしインストールは終わりです。
##2.3 試しに使ってみる
自分のPCでPythonが使えるようになっているかを確認してみましょう!
Pythonを実行するには「コマンドプロンプト」と言うツールを使います。
今回はPythonがインストールされているかどうかを確認します。
下記のコマンドを入力して、「Enter」キーを押してください。
python --version
下記のように、Python 3.6.5 と表示されれば、正常にPythonのインストールができています。
Python 3.10.1
#3. Switch Botのトークンを取得する
API認証用のトークンを取得します。
SwitchBotアプリの 設定 > アプリバージョンを10回ほどタップすると以下のように表示されます。
開発者向けオプションからトークンを確認できます。
#4. Switch BotのデバイスIDを調べる
##4.1はじめに
Pythonを書くにはVSCodeなどのエディターが必要です。
下記の記事を参考にしてインストールしてください。
##4.2 使うモジュールをインストールする
モジュールをインストールするにはpipコマンドを使います。
下記のコマンドを入力して、「Enter」キーを押してください。
pip install requests
下記のように、一番下に Successfully と表示されれば、モジュールのインストールができています。
Successfully installed requests-2.26.0
##4.3 実際にデバイスIDを調べる
まず、下記のプログラムを任意の場所に保存しましょう。
import requests
import json
token = "先ほど取得したトークン"
url = "https://api.switch-bot.com/v1.0/devices/"
h = {"Authorization": token, "Content-Type": "application/json; charset=utf8"}
reply = json.loads(requests.get(url, headers=h).text)
message = reply['message']
if message == 'success':
list = reply['body']['infraredRemoteList']
item = len(list)
id = None
name = input("デバイス名は?:")
for i in range(1, item):
if name == list[i-1]['deviceName']:
id = list[i-1]['deviceId']
if id:
print(id)
else:
print('Error!')
else:
print('Error:', message)
次に、「C:\Users\Username\Documents\Python\SearchID.py」のとろは先ほど保存したプログラムのパスに変更し、実行してください。
python C:\Users\Username\Documents\Python\SearchID.py
「デバイス名は?」と聞かれたらSwitch Botで設定しているライトの名前を入力し、「Enter」キーを押してください。
成功すると下記のように表示されます。
後で使うのでどこかにメモしておいてください。
もし、「Error: Unauthorized」が表示されたらトークンを間違えていないか確認してください。
もしくは、「error!」が表示されたらデバイス名を間違えていないか確認してください。
デバイス名は?:ライト
00-000000000000-00000000
#5. ツイートしたらライトをつける
##5.1 はじめに
Twtter APIを使うにはキーが必要になります。
下記のサイトを参考にして申請し、キーを取得してください。
##5.2 使うモジュールをインストールする
下記のコマンドを入力して、「Enter」キーを押してください。
pip install tweepy
下記のように、一番下に Successfully と表示されれば、モジュールのインストールができています。
Successfully installed tweepy-4.4.0
##5.3 実際に動かしてみる
まず、下記のプログラムを任意の場所に保存しましょう。
import tweepy
import re
import requests
#Twitter用定数
BT = "先ほど取得したBearer Token"
CK = "先ほど取得したConsumer Key"
CS = "先ほど取得したConsumer Secret"
AT = "先ほど取得したAccess Token"
ATS = "先ほど取得したAccess Token Secret"
#Switch Bot用定数
token = "前回取得したトークン"
url = "https://api.switch-bot.com/v1.0/devices/前回調べたデバイスID/commands"
h = {"Authorization": token, "Content-Type": "application/json; charset=utf8"}
j = {"command": "turnOn", "parameter": "default", "commandType": "command"}
#自分のTwtterのユーザーネーム
UN = "ユーザーネーム"
#認証
client = tweepy.Client(bearer_token=BT, consumer_key=CK, consumer_secret=CS, access_token=AT, access_token_secret=ATS)
#自分のID検索
search = str(client.get_user(username=UN))
UID = re.findall("(?<=User id=)\w+", search)[0]
#ツイートとツイートID検索
tweets = str(client.get_users_tweets(id=UID))
TID = re.findall("(?<=Tweet id=)\w+", tweets)[0]
tweet = re.findall("(?<=text=)\w+", tweets)[0]
#ツイート検索&実行
if tweet == "ライトつけて":
client.create_tweet(in_reply_to_tweet_id=TID, text="つけました!")
requests.post(url, headers=h, json=j)
print("実行しました!")
elif tweet == "ライトけして" :
client.create_tweet(in_reply_to_tweet_id=TID, text="けしました!")
requests.post(url, headers=h, json=j)
print("実行しました!")
else:
print("見つかりませんでした")
次に、「ライトつけて」とツイートしてください。
その後に、「C:\Users\Username\Documents\Python\TurnOnLight.py」のとろは先ほど保存したプログラムのパスに変更し、実行してください。
python C:\Users\Username\Documents\Python\TurnOnLight.py
成功するとライトがつき、下記のように表示され、リプライに「つけました!」と送信されます。
実行しました!
もしツイートが見つからなければ下記のように表示されます。
ツイートしたのに見つからない場合は、少しタイムラグがあるようなので数秒後にやりなおしてください。
見つかりませんでした
#6. 定期的に実行させるには
毎回ツイートした後にプログラムを実行させるのは大変ですよね
なので、Herokuなどを利用して定期的に実行しましょう。
下記の記事を参考にして導入してみてください。
#7. おわりに
今回の記事はどうだったでしょうか。
誤字、脱字があれば教えてくれるとありがたいです。
また、プログラムのわからないことや質問、ミスなどありましたらコメントしてください。
今回作ったプログラムはGitHubにありますので、ご自由にお使いください!