Wir laden alle Kanäle jeden Tag zu einer festgelegten Zeit zum Mittagessen ein und informieren Sie kurz vor der Abflugzeit über die Abreise. Ich verwende "Ich habe einen Slack-Bot erstellt, der über ein gutes Mittagessen entscheidet".
.js
function isHoliday(){
var today = new Date();
//Beurteilung, ob es Samstag und Sonntag ist
var weekInt = today.getDay();
if(weekInt <= 0 || 6 <= weekInt){
return true;
}
//Beurteilung, ob es ein Feiertag ist
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 ){
~~~
}
Also versuche ich es nur an Wochentagen auszuführen.
Ich möchte, dass Sie mit mir sprechen, wenn es Zeit ist, also habe ich versucht, mit der Person zu sprechen, die reagiert hat (gewaltsam mit Python vom lokalen PC).
Bereiten Sie Token, Kanal-IDs, BOTIDs usw. vor. Sie können die Kanal-ID aus der Kanalliste abrufen, indem Sie auf "Link kopieren" klicken. BOTID kann auch durch "Link kopieren" aus Bots Bemerkungen erhalten werden.
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"
Weil der Zeitstempel (ts), der in channel.history zurückgegeben wird, UNIX-Zeit ist
#Holen Sie sich heute(UNIX-Zeit)
now = time.time()
#3600=vor 1 Stunde
nowd = math.floor(now) - 3600
Holen Sie sich die Bemerkungen des Kanals mit json
payload = {
"token": token,
"channel": channel_id
}
response = requests.get(histurl, params=payload)
json_data = response.json()
Identifizieren Sie die Person, die auf das reagiert hat, was der Bot vor einer Stunde gesagt hat.
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
Senden Sie dann eine Nachricht an Slack, um Sie über Ihre Abreise zu informieren
if realist != []:
for ulis in realist:
atesaki += "<@" + ulis + ">"
message = atesaki + "Kannst du zu Mittag essen?:airplane:"
postpayload = {
"token": token,
"channel": channel_id,
"username": "Einladung zum Mittagessen",
"icon_emoji": ':ramen:',
"text": message
}
else:
postpayload = {
"token": token,
"channel": channel_id,
"username": "Fehler bei der Einladung zum Mittagessen",
"icon_emoji": ':kevin:',
"text": "Niemand scheint zum Mittagessen zu gehen"
}
requests.post(posturl, data = postpayload)
Danach wird es regelmäßig irgendwo ausgeführt Ich möchte sie alle zusammenfügen, also werde ich Python für die erste Hälfte verwenden (und es mit FaaS ausführen).