discord.py+gspread로 출퇴근 관리
6780 단어 discord.pySheetsAPIgspreadPython
배경.
집에서 일하면서 출근하는 느낌을 표현하기 위해 디스코드로 뭐라도 할 수 있을까 생각하다 음성채널에 들어갈 때 출근해 봇을 만들어 보고 벗고 퇴근했다.
생성물
사용된 기술
사용된 기술
해본 일
음성 채널의 in/out 검사
discord.Clinenton_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.)