slack-to-gcal

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

slack-to-gcal

slack-to-gcal

Slack 메시지에 이모지 반응한 사람들을 Google Calendar 이벤트에 자동 초대하는 스킬.
自动将对Slack消息做出表情反应的用户邀请至Google Calendar事件的Skill。

Step 1: 링크 수집

步骤1:收集链接

사용자에게 두 가지 링크를 받는다.
  • Slack 메시지 링크: 이모지 반응을 받은 메시지의 링크
    • Slack에서 메시지 우클릭 → "링크 복사"
    • 예:
      https://eo2019.slack.com/archives/C01N15328HG/p1772186298231169
  • Google Calendar 이벤트 링크: 초대할 이벤트의 편집 URL
    • 캘린더에서 이벤트 클릭 → 연필(편집) 아이콘 → 주소창 URL 복사
    • 예:
      https://calendar.google.com/calendar/u/0/r/eventedit/NGhwY3Y4...
아직 두 링크를 받지 않은 경우 AskUserQuestion으로 요청한다:
json
AskUserQuestion({
  "questions": [
    {
      "question": "이모지 반응을 받은 Slack 메시지 링크를 붙여넣으세요.",
      "header": "Slack 링크",
      "options": [
        {"label": "링크 준비됨", "description": "다음 단계로 진행"},
        {"label": "링크 찾는 중", "description": "메시지 우클릭 → 링크 복사"}
      ],
      "multiSelect": false
    }
  ]
})
向用户收集两个链接:
  • Slack消息链接:收到表情反应的消息链接
    • 在Slack中右键点击消息 →「复制链接」
    • 示例:
      https://eo2019.slack.com/archives/C01N15328HG/p1772186298231169
  • Google Calendar事件链接:待邀请事件的编辑URL
    • 在日历中点击事件 → 铅笔(编辑)图标 → 复制地址栏URL
    • 示例:
      https://calendar.google.com/calendar/u/0/r/eventedit/NGhwY3Y4...
如果尚未收到这两个链接,使用AskUserQuestion进行请求:
json
AskUserQuestion({
  "questions": [
    {
      "question": "이모지 반응을 받은 Slack 메시지 링크를 붙여넣으세요.",
      "header": "Slack 링크",
      "options": [
        {"label": "링크 준비됨", "description": "다음 단계로 진행"},
        {"label": "링크 찾는 중", "description": "메시지 우클릭 → 링크 복사"}
      ],
      "multiSelect": false
    }
  ]
})

Step 2: 스크립트 실행

步骤2:运行脚本

두 링크를 받으면 아래 명령어를 실행한다.
bash
cd C:\Users\ash\ash
printf 'y\n' | PYTHONIOENCODING=utf-8 python scripts/tools/slack_to_gcal.py \
  --slack "[SLACK_링크]" \
  --cal "[CALENDAR_링크]"
  • [SLACK_링크]
    [CALENDAR_링크]
    를 사용자가 제공한 실제 링크로 교체
  • token_calendar.json
    이 있으면 Google 로그인 없이 바로 실행됨
收到两个链接后,执行以下命令:
bash
cd C:\Users\ash\ash
printf 'y\n' | PYTHONIOENCODING=utf-8 python scripts/tools/slack_to_gcal.py \
  --slack "[SLACK_링크]" \
  --cal "[CALENDAR_링크]"
  • [SLACK_링크]
    [CALENDAR_링크]
    替换为用户提供的实际链接
  • 若存在
    token_calendar.json
    ,无需Google登录即可直接运行

Step 3: 결과 요약

步骤3:结果汇总

스크립트 출력 결과를 보기 좋게 정리해서 보여준다:
✅ 완료!

이벤트: [이벤트 제목]
일시: [날짜/시간]

이모지 반응자 총 N명
├── 새로 초대됨 (N명): 이름, 이름, 이름
└── 이미 초대됨 (N명): 이름, 이름

将脚本输出结果整理为易读格式展示:
✅ 완료!

이벤트: [이벤트 제목]
일시: [날짜/시간]

이모지 반응자 총 N명
├── 새로 초대됨 (N명): 이름, 이름, 이름
└── 이미 초대됨 (N명): 이름, 이름

참고

参考信息

  • 스크립트 위치:
    scripts/tools/slack_to_gcal.py
  • Google Calendar 토큰:
    token_calendar.json
    (최초 1회 브라우저 로그인 필요)
  • Slack 봇 토큰:
    .env
    SLACK_BOT_TOKEN
  • 필요 스코프:
    reactions:read
    ,
    users:read
    ,
    users:read.email
  • 脚本位置:
    scripts/tools/slack_to_gcal.py
  • Google Calendar令牌:
    token_calendar.json
    (首次需通过浏览器登录)
  • Slack机器人令牌:
    .env
    文件中的
    SLACK_BOT_TOKEN
  • 所需权限范围:
    reactions:read
    ,
    users:read
    ,
    users:read.email