discord.py+gspread로 출퇴근 관리
6780 단어 discord.pySheetsAPIgspreadPython
배경.
집에서 일하면서 출근하는 느낌을 표현하기 위해 디스코드로 뭐라도 할 수 있을까 생각하다 음성채널에 들어갈 때 출근해 봇을 만들어 보고 벗고 퇴근했다.
생성물
사용된 기술
사용된 기술
해본 일
음성 채널의 in/out 검사
discord.Clinent
on_voice_state_update(self, member, before, after)
로 테스트 수행
async def on_voice_state_update(self, member, before, after):
if(before.channel is None):
# ボイスチャンネルにinした時の処理
start_work(member)
elif(after.channel is None):
# ボイスチャンネルからoutした時の処理
end_work(member)
Google spread sheet에 저장
ⅰ. 적절한 곳에서 spread sheet 만들기 (설명략)
ⅱ. GCP를 통한 서비스 계정 만들기 + drive API/sheets API의 유효성
ⅲ. Python에 설치
GCP를 통한 서비스 계정 만들기 + drive API /sheets API의 유효성
사이트 축소판 그림 참고했습니다.
ⅰ.에서 만든 spread sheet에서 만든 서비스 계정은 공동 편집자로 초대됩니다.또한 여기에 저장된 기밀 키의 파일 이름을 임시
himitsu.json
로 설정합니다.Python에 설치
실현은 다음과 같다.
import json
import gspread
from oauth2client.service_account import ServiceAccountCredentials
def register(record: Dict[str, str]):
scope = [
'https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive'
]
credentials = ServiceAccountCredentials.from_json_keyfile_name('himitsu.json', scope)
gc = gspread.authorize(credentials)
workbook = gc.open_by_key('作成したspread sheetのkey')
sheet = workbook.sheet1
sheet.insert_row(list(record.values()))
텍스트 반응
잘 보관돼 있다는 걸 알 것 같아서 최신 투고에 반응했다.
discord.Message
의add_reaction(emoji)
를 사용하여 실현하다.또 최근 기고문을 취득하기 위해 discord.TextChannel
의history(*)
를 사용했다.import discord
class Clinet(discord.Client)
def success_reaction(self, member, is_end=False)
channel = self.get_channel('discordのテキストチャンネルのid')
async for msg in channel.history(limit=10):
if msg.author == member:
await msg.add_reaction("👍") if is_end else await msg.add_reaction("👀")
break
감상
다음은 출근 정보 요약 기능을 만들어 보자.
사이트 축소판 그림
Reference
이 문제에 관하여(discord.py+gspread로 출퇴근 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/makky0620/items/f4b83fb5eaa4dc673899텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)