Nous invitons toutes les chaînes à déjeuner à une heure fixe tous les jours et vous informons du départ juste avant l'heure de départ. J'utilise "J'ai créé un bot Slack qui décide d'un bon déjeuner".
.js
function isHoliday(){
var today = new Date();
//Jugement si c'est samedi et dimanche
var weekInt = today.getDay();
if(weekInt <= 0 || 6 <= weekInt){
return true;
}
//Juger s'il s'agit d'un jour férié
var calendarId = "ja.japanese#[email protected]";
var calendar = CalendarApp.getCalendarById(calendarId);
var todayEvents = calendar.getEventsForDay(today);
if(todayEvents.length > 0){
return true;
}
return false;
}
var holiday = isHoliday()
if(holiday == false ){
~~~
}
Donc, j'essaie de l'exécuter uniquement en semaine.
Je veux que tu me parles quand il est temps, alors j'ai essayé de parler à la personne qui a réagi (de force avec Python depuis le PC local)
Préparez les jetons, les ID de canal, les BOTID, etc. Vous pouvez obtenir l'identifiant de la chaîne dans la liste des chaînes en cliquant sur "Copier le lien". BOTID peut également être obtenu par "copier le lien" à partir des remarques de Bot.
import requests
import json
import math
import time
histurl = "https://slack.com/api/channels.history"
posturl = "https://slack.com/api/chat.postMessage"
token = "SLACKTOKEN"
channel_id = "SLACKCHANNNELID"
bot_id = "SLACKBOTID"
Parce que l'horodatage (ts) renvoyé dans channels.history est l'heure UNIX
#Obtenez aujourd'hui(Heure UNIX)
now = time.time()
#3600=Il ya 1 heure
nowd = math.floor(now) - 3600
Obtenez les remarques de la chaîne avec json
payload = {
"token": token,
"channel": channel_id
}
response = requests.get(histurl, params=payload)
json_data = response.json()
Identifiez la personne qui a répondu à ce que le robot a dit il y a une heure.
for i in json_data["messages"]:
try:
if i["bot_id"] == bot_id:
if float(i['ts']) >= nowd:
for u in i['reactions']:
for v in u["users"]:
realist.append(v)
except:
pass
Envoyez ensuite un message à Slack pour vous informer de votre départ
if realist != []:
for ulis in realist:
atesaki += "<@" + ulis + ">"
message = atesaki + "Pouvez-vous déjeuner?:airplane:"
postpayload = {
"token": token,
"channel": channel_id,
"username": "Invitation au déjeuner",
"icon_emoji": ':ramen:',
"text": message
}
else:
postpayload = {
"token": token,
"channel": channel_id,
"username": "Échec de l'invitation au déjeuner",
"icon_emoji": ':kevin:',
"text": "Personne ne semble aller déjeuner"
}
requests.post(posturl, data = postpayload)
Après cela, il sera exécuté régulièrement quelque part Je veux les mettre tous ensemble, donc je vais utiliser Python pour la première moitié (et l'exécuter avec FaaS).