ZoomAPIを使ってミーティングを作成したり、削除したりする記事はたくさんあるので、これらの記事を参考にPythonを使ってプログラミングをしてみた。今回参考にしたサイトはこちら。
How to create a meeting with zoom API in Python?
Zoom Meeting API (2.0.0)
私、英語はほとんど読めなので、Google翻訳にお世話になっています。
コーディング
上のサイトを参考に、下のようにコーディングを行った。
import jwt
import requests
import json
from time import time
API_KEY = 'your API_KEY'
API_SEC = 'your API_SEC'
def generateToken():
token = jwt.encode({'iss': API_KEY, 'exp': time() + 5000}, API_SEC, algorithm='HS256')
return token
meetingdetails = {"topic": "The title of your zoom meeting",
"type": 2,
"start_time": "2022-06-14T10: 21: 57",
"duration": "45",
"timezone": "Asia/Tokyo",
"agenda": "test",
"recurrence": {"type": 1,
"repeat_interval": 1
},
"settings": {"host_video": "true",
"participant_video": "true",
"join_before_host": "False",
"mute_upon_entry": "False",
"watermark": "true",
"audio": "voip",
"auto_recording": "cloud"
}
}
def createMeeting():
headers = {'authorization': 'Bearer ' + generateToken(),
'content-type': 'application/json'}
r = requests.post(
f'https://api.zoom.us/v2/users/me/meetings',
headers=headers, data=json.dumps(meetingdetails))
print("\n creating zoom meeting ... \n")
y = json.loads(r.text)
join_URL = y["join_url"]
meetingPassword = y["password"]
print(
f'\n here is your zoom meeting link {join_URL} and your \
password: "{meetingPassword}"\n')
def deleteMeeting(meetingId):
headers = {'authorization': 'Bearer ' + generateToken(),
'content-type': 'application/json'}
response = requests.delete(f'https://api.zoom.us/v2/meetings/{meetingId}',
headers=headers, data=json.dumps(meetingdetails))
print("\n delete zoom meeting ... \n")
if response.status_code == 204 :
print('Successfully delete meeting.')
else:
print(f'Failed to delete. Code:{response.status_code}')
if __name__ == '__main__' :
createMeeting()
deleteMeeting()
ちょっと解説
How to create a meeting with zoom API in Python?でのコーディングの中に、
return token.decode('utf-8')
があったが、実行すると私のターミナルではこのようにエラー表示された。
AttributeError: 'str' object has no attribute 'decode'
なので、この部分については、私はこのように書き換えた。
return token
次に、ミーティングを削除する部分で、
if response.status_code == 204 :
の部分があるが、こちらはZoom Meeting API (2.0.0)に書かれているレスポンスコードをそのまま指定している。もっといい方法があったら教えて欲しいです。
あとは、最後の部分、
if __name__ == '__main__' :
createMeeting()
deleteMeeting()
はお好きにコメントアウトして実行して欲しい。
コーディングしてみて
色々方法はあると思うけど、今回の方法ではZoomの複数アカウントを使用する際に利用できるかなと考えている。API_KEYなどの情報をdict型とかにして複数アカウントで運用とか。
API独特のお作法?を覚えれば、あとはそんなに難しくないのかなと今回作ってみて思った。
今後も色々つくってみたい。