Discord Bot Construction Kit πŸ€–

Whoops, I deleted the wrong link from the OP. (There were two plugins, I should have deleted the OAuth one, but instead I deleted the link to the bot!)

Uninstall that plugin asap, as Core now supports Discord OAuth out of the box.

The bot plugin is THIS one:

https://github.com/merefield/discourse-discord-bot

I’ve altered the OP accordingly, sorry about that!!

3개의 μ’‹μ•„μš”

이 ν”ŒλŸ¬κ·ΈμΈμ΄ μˆ˜λ™ 동기화 λŒ€μ‹  μ‚¬μš©μžκ°€ 그룹에 κ°€μž…ν•  λ•Œ μžλ™μœΌλ‘œ μ—…λ°μ΄νŠΈλ˜λ„λ‘ ν•˜λŠ” μž‘μ—…μ˜ ν˜„ν™©μ„ μ•Œκ³  κ³„μ‹ κ°€μš”? λ˜ν•œ ν”ŒλŸ¬κ·ΈμΈμ΄ 역할을 직접 μƒμ„±ν•˜κ±°λ‚˜ μΈμˆ˜ν•˜λŠ” λŒ€μ‹ , μ–΄λ–€ κ·Έλ£Ή/역할을 ν•¨κ»˜ 동기화할지 μ§€μ •ν•  수 μžˆλŠ” 방법이 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

2개의 μ’‹μ•„μš”

κ·Έ μš”μ²­μ΄ 처음이라, μ§μž‘ν•˜μ‹œκ² μ§€λ§Œ λ°±λ‘œκ·Έμ—μ‘°μ°¨ λ“±λ‘λ˜μ–΄ μžˆμ§€ μ•Šμ€ μƒνƒœμž…λ‹ˆλ‹€.

봇이 독립적인 μŠ€λ ˆλ“œμ—μ„œ μ‹€ν–‰λ˜κΈ° λ•Œλ¬Έμ— κ½€ κΉŒλ‹€λ‘œμš΄ μž‘μ—…μž…λ‹ˆλ‹€. λ΄‡μ—κ²Œ λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄λŠ” λ©”μ„œλ“œλ₯Ό μΆ”κ°€ν•˜κ³  μš”μ²­μ„ μˆ˜μ‹ ν•˜λ„λ‘ μ²­μ·¨λ₯Ό μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. κΈ°μˆ μ μœΌλ‘œλŠ” ν₯미둜운 μ—°μŠ΅μ΄μ§€λ§Œ κ²°μ½” μ‰¬μš΄ 일은 μ•„λ‹™λ‹ˆλ‹€.

λŒ€μ‹  봇을 μ‚¬μš©ν•˜μ§€ μ•Šκ³  직접 API 호좜 방식을 νƒμƒ‰ν•˜λŠ” 것이 더 λ‚˜μ€ 선택일 수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ 봇이 μ•„λ‹Œ 독립적인 ν˜ΈμΆœμ„ 기반으둜 ν•˜λŠ” λ‹€λ₯Έ ν”ŒλŸ¬κ·ΈμΈμœΌλ‘œ λ°°ν¬ν•˜λŠ” 것이 μ μ ˆν•œμ§€ κ²°μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ‚˜μœ μ•„μ΄λ””μ–΄λŠ” μ•„λ‹ˆμ§€λ§Œ, μ™œ μ„œλ‘œ λ‹€λ₯΄κ²Œ μ„€μ •ν•΄μ•Ό ν•˜λŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

이것은 더 μ‹€μš©μ μž…λ‹ˆλ‹€.

PR이 μŠΉμΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€. λΆˆν–‰νžˆλ„ 자금 지원 없이 μ£Όμš” κΈ°λŠ₯을 κ°œλ°œν•  μ‹œκ°„μ΄ 맀우 μ œν•œμ μž…λ‹ˆλ‹€.

3개의 μ’‹μ•„μš”

ν˜„μž¬ μƒνƒœλ‘œλŠ” 역할이 제λͺ©μ΄ μ•„λ‹Œ "name"을 κΈ°μ€€μœΌλ‘œ μƒμ„±λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ Discordμ—μ„œ λ‚΄ μ—­ν•  이름에 ν•˜μ΄ν”ˆμ΄ λ“€μ–΄κ°€κ³  곡백이 μ‚¬λΌμ§€λŠ” λ“±μ˜ λ¬Έμ œκ°€ λ°œμƒν•˜λ„€μš”. λ”°λΌμ„œ 역할을 이름이 μ•„λ‹Œ 전체 μ΄λ¦„μ΄λ‚˜ κΈ°λ³Έ 제λͺ©μ„ κΈ°μ€€μœΌλ‘œ μƒμ„±ν•˜λ„λ‘ ν•˜λŠ” λŒ€μ•ˆμ΄ μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€.

κ·Έλ ‡μ§€λ§Œ, Discord에 λ™κΈ°ν™”ν•˜μ§€ μ•ŠλŠ” 것이 더 λ‚˜μ€ Discourse 그룹도 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹΅λ³€ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€ :slight_smile:

2개의 μ’‹μ•„μš”

μ„€λͺ…(description) ν•„λ“œλ₯Ό κΈ°μ€€μœΌλ‘œ ν•˜μ§€ μ•ŠκΈ° μœ„ν•΄ μ˜λ„μ μœΌλ‘œ μ΄λ ‡κ²Œ μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€. μ„€λͺ… ν•„λ“œλŠ” λ‹€μŒκ³Ό 같은 λ¬Έμ œκ°€ μžˆμ„ 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€:

a) 곡백이 포함될 수 있음
b) κ³ μœ ν•˜μ§€ μ•Šμ„ 수 있음

(컴퓨터 κ³Όν•™μ—μ„œλŠ” 일반적으둜 μ’‹μ§€ μ•Šμ€ κ΄€ν–‰μž…λ‹ˆλ‹€)

λ‹€λ§Œ, 이λ₯Ό μ•ˆμ „ν•˜κ²Œ κ°œμ„ ν•  방법이 μžˆλ‹€λ©΄ 기꺼이 μ˜κ²¬μ„ λ“£κ² μŠ΅λ‹ˆλ‹€. λ³΄κΈ°μ—λŠ” κΉ”λ”ν•˜μ§€ μ•Šλ‹€λŠ” 점도 잘 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€ :slight_smile:

κ΄€λ¦¬μžμ˜ μž¬λŸ‰μ— 따라 νŠΉμ • 그룹의 동기화λ₯Ό λΉ„ν™œμ„±ν™”ν•  수 μžˆλŠ” κΈ°λŠ₯을 ν”ŒλŸ¬κ·ΈμΈμ— μΆ”κ°€ν•˜λŠ” 것은 μΆ©λΆ„νžˆ κ°€λŠ₯ν•©λ‹ˆλ‹€. PR(ν’€ λ¦¬ν€˜μŠ€νŠΈ) ν™˜μ˜ν•©λ‹ˆλ‹€.

4개의 μ’‹μ•„μš”

API λ©”μ„œλ“œλ₯Ό μ—°κ΅¬ν•˜λŠ” λ™μ•ˆ, κ·Έ 사이에 봇이 μ˜ˆμ•½λœ μ‹œκ°„μ— μžλ™μœΌλ‘œ λ™κΈ°ν™”λ˜λ„λ‘ ν•  수 μžˆμ„κΉŒμš”? 예λ₯Ό λ“€μ–΄, 1μ‹œκ°„λ§ˆλ‹€ λ˜λŠ” 24μ‹œκ°„λ§ˆλ‹€ ν•œ λ²ˆμ”© ν™•μΈν•˜λŠ” λ°©μ‹μ²˜λŸΌμš”?

1개의 μ’‹μ•„μš”

이 ν”ŒλŸ¬κ·ΈμΈμ— β€˜xμ‹œκ°„ 후에 이 μž‘μ—…μ„ λ‹€μ‹œ λ°˜λ³΅β€™ 같은 κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” 것은 μ „ν˜€ λ¬Έμ œκ°€ μ—†λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

ν•˜μ§€λ§Œ λ¬Έμ œλŠ” 봇이 μ’…λ£Œλ  λ•Œλ§ˆλ‹€(예: μž¬λΆ€νŒ… μ‹œ) 이 κΈ°λŠ₯이 μ€‘λ‹¨λœλ‹€λŠ” μ μž…λ‹ˆλ‹€.

κ°€μž₯ 이상적인 μ ‘κ·Ό 방식은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

a) 이 ν”ŒλŸ¬κ·ΈμΈμ— μ‚¬μ΄λ“œν‚₯(Sidekiq) μž‘μ—…κ³Ό μ—°κ²°λœ 독립적인 API ν˜ΈμΆœμ„ μΆ”κ°€ν•˜κ±°λ‚˜
b) 봇을 μ‚¬μš©ν•˜μ§€ μ•Šκ³  일반 API ν˜ΈμΆœμ„ μ‚¬μš©ν•˜λŠ” μƒˆ ν”ŒλŸ¬κ·ΈμΈμ„ μž‘μ„±ν•˜λŠ” 것(κ·Έ μ•ˆμ— 배치 동기화λ₯Ό 포함).

μœ„ 두 κ°€μ§€ 쀑 μ–΄λŠ 것이든 후원을 λ°›κ±°λ‚˜ PR을 μ œμΆœν•΄μ•Ό ν•©λ‹ˆλ‹€.

1개의 μ’‹μ•„μš”

μ•Œκ² μŠ΅λ‹ˆλ‹€. 도움 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

2개의 μ’‹μ•„μš”

μ•ˆλ…•ν•˜μ„Έμš”.

ν˜„μž¬ ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš© 쀑이며 λͺ¨λ“  섀정이 μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜λŠ” μƒνƒœμž…λ‹ˆλ‹€. 정말 쒋은 ν”ŒλŸ¬κ·ΈμΈμΈ 것 κ°™μŠ΅λ‹ˆλ‹€. 수고 λ§ŽμœΌμ…¨μŠ΅λ‹ˆλ‹€!

λ‹€λ§Œ λͺ‡ κ°€μ§€ 질문이 μžˆμŠ΅λ‹ˆλ‹€. 이제 λͺ¨λ“  것이 정상 μž‘λ™ν•˜λ‹ˆ μ‚¬μš©μžλ“€μ΄ Discord OAuthλ₯Ό 톡해 λ‘œκ·ΈμΈν•˜λ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ μƒˆ 계정이 μƒμ„±λ©λ‹ˆλ‹€.

이 상황을 κ΄€λ¦¬ν•˜λŠ” κ°€μž₯ 쒋은 방법은 λ¬΄μ—‡μΌκΉŒμš”? μƒˆ 계정과 κΈ°μ‘΄ 계정을 병합해야 ν•˜λ‚˜μš”? κ΄€λ¦¬μž κ³„μ •μœΌλ‘œ 이 μž‘μ—…μ„ μ‹œλ„ν•΄ λ³΄μ•˜λŠ”λ°, μˆ˜λ™μœΌλ‘œ !discsyncλ₯Ό μ‹€ν–‰ν•˜λ € ν–ˆμ„ λ•Œ "λͺ…λ Ήμ–΄ discsyncλ₯Ό μ‹€ν–‰ν•  κΆŒν•œμ΄ μ—†μŠ΅λ‹ˆλ‹€!"λΌλŠ” 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ, Discourse의 μ—­ν• (Roles)이 아직 ν•˜λ‚˜λ„ λ³΅μ‚¬λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

참고둜, 제 μ˜΅μ…˜ ν™”λ©΄μ—μ„œλŠ” Discord 계정이 μ—°κ²°λœ κ³„μ •μœΌλ‘œ ν‘œμ‹œλ˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

도움 μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€!

2개의 μ’‹μ•„μš”

ν”ŒλŸ¬κ·ΈμΈμ— 관심을 κ°€μ Έμ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

이것은 ν”ŒλŸ¬κ·ΈμΈμ˜ κΈ°λŠ₯이 μ•„λ‹ˆλΌ 핡심 κΈ°λŠ₯μž…λ‹ˆλ‹€. Discord OAuthλŠ” 기본적으둜 Discourse에 ν¬ν•¨λ˜μ–΄ μ œκ³΅λ©λ‹ˆλ‹€.

μœ„ 섀정듀은 이 ν”ŒλŸ¬κ·ΈμΈμ„ Discourse에 μΆ”κ°€ν•˜λ“  말든 항상 ν‘œμ‹œλ©λ‹ˆλ‹€.

μ†Œμ…œ κ³„μ •μœΌλ‘œ λ‘œκ·ΈμΈν•  λ•Œ, 등둝 이메일이 μΌμΉ˜ν•˜λŠ” ν•œ 계정이 μΈμ‹λ˜μ–΄ μƒˆ 계정이 μƒμ„±λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ‚¬μš©μžκ°€ Discord에 κ°€μž…ν•  λ•Œ Discourse와 λ‹€λ₯Έ 이메일을 μ‚¬μš©ν–ˆλ‹€λ©΄, μ‹œμŠ€ν…œμ΄ λ™μΌν•œ μ‚¬μš©μžμž„μ„ μ•Œ 수 μžˆλŠ” 방법이 μ—†μœΌλ―€λ‘œ λ‹Ήμ—°νžˆ μƒˆ 계정이 μƒμ„±λ©λ‹ˆλ‹€.

Discord μ„œλ²„μ˜ κ΄€λ¦¬μž κ³„μ •μ΄μ‹œλ‚˜μš”? λ˜ν•œ 봇을 승인(authorise)ν•˜μ…¨λ‚˜μš”?

Ping!을 μ‹€ν–‰ν•˜λ©΄ μ–΄λ–€ κ²°κ³Όκ°€ λ‚˜μ˜€λ‚˜μš”?

4개의 μ’‹μ•„μš”

κ·Έλ ‡λ‹€λŠ” 것에 λ™μ˜ν•©λ‹ˆλ‹€. μ΅œμ•…μ˜ 경우 이메일이 μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” 계정을 병합할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ„€, λ§žμŠ΅λ‹ˆλ‹€. μ €λŠ” ν•΄λ‹Ή Discord와 Discourse μΈμŠ€ν„΄μŠ€μ˜ μ†Œμœ μžμž…λ‹ˆλ‹€. "Ping!"의 κ²°κ³ΌλŠ” "Pong!"μž…λ‹ˆλ‹€. Discourseμ—μ„œ Discord둜 μ΄μ „λœ μ—­ν• (Roles)은 μ—†μŠ΅λ‹ˆλ‹€.

봇은 제 Discord μ„œλ²„μ— 있으며 κ΄€λ¦¬μž κΆŒν•œμ„ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. '승인(authorising)'이 무엇을 μ˜λ―Έν•˜λŠ”μ§€ 더 λͺ…ν™•νžˆ μ„€λͺ…ν•΄ μ£Όμ‹€ 수 μžˆλ‚˜μš”?

3개의 μ’‹μ•„μš”

이 단계λ₯Ό μ™„λ£Œν•˜μ…¨λ‚˜μš”? (λͺ¨λ“  사전 μš”κ±΄μ„ ν™•μΈν•˜λŠ” μ€‘μž…λ‹ˆλ‹€. 거의 ν™•μ‹€νžˆ μ™„λ£Œν•˜μ…¨μ„ κ²λ‹ˆλ‹€.)

2개의 μ’‹μ•„μš”

응, λ‚˜ν•œν…Œ μžˆμ–΄ :slight_smile:

1개의 μ’‹μ•„μš”

제 μ§κ°μœΌλ‘œλŠ” λ””μŠ€μ½”λ“œ μ„œλ²„μ—μ„œ λ‹Ήμ‹ μ΄λ‚˜ λ΄‡μ˜ κΆŒν•œμ΄ μ–΄λ”˜κ°€ μ œλŒ€λ‘œ μ„€μ •λ˜μ–΄ μžˆμ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€. μˆ˜μ‹­ 개의 ν”ŒλŸ¬κ·ΈμΈμ„ μž‘μ—…ν•˜λ©΄μ„œ 이 ν”ŒλŸ¬κ·ΈμΈμ— λŒ€ν•΄ 기얡을 μƒˆλ‘œμ΄ ν•˜κ³  μžˆλŠ” 쀑이라, 이 ν”ŒλŸ¬κ·ΈμΈμ— λŒ€ν•œ λ§ˆμ§€λ§‰ 변경은 κ½€ μ˜€λž˜μ „μ΄μ—ˆμ–΄μš”!

1개의 μ’‹μ•„μš”

λ‘œμ €! λ‚΄ μͺ½μ—μ„œ λΉ λ₯΄κ²Œ 확인해 λ΄€λŠ”λ°, 참고둜 μ €λŠ” μ„œλ²„ μ†Œμœ μžλ‘œ λ“±λ‘λ˜μ–΄ 있고 κ΄€λ¦¬μž κΆŒν•œμ΄ μžˆμŠ΅λ‹ˆλ‹€.

μˆ˜μ •: 봇이 μ–΄λ–€ κΆŒν•œμ„ ν•„μš”λ‘œ ν•˜λŠ”μ§€ λͺ…ν™•νžˆ ν•  수 μžˆμ„κΉŒμš”? ν˜„μž¬ 봇은 κ΄€λ¦¬μžλ‘œ ν‘œμ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€(λ‹€λ§Œ, μ΄λŠ” OAuth μ΄ˆλŒ€ 링크가 μ•„λ‹Œ 역할을 톡해 λΆ€μ—¬λœ κ²ƒμž…λ‹ˆλ‹€).

1개의 μ’‹μ•„μš”

제 λ΄‡μ—λŠ” 이 ν•­λͺ©λ“€μ΄ μžˆμŠ΅λ‹ˆλ‹€:

1개의 μ’‹μ•„μš”

제거 (λ―Έμ•ˆ, μ—¬κΈ° 신참이라

3개 포슀트λ₯Ό μ˜¬λ €μ•Ό ν•˜κ±°λ“ μš”β€¦)

1개의 μ’‹μ•„μš”

채널 κΆŒν•œμ„ 확인해 μ£Όμ‹œκ² μ–΄μš”? λ””μŠ€μ½”λ“œμ—μ„œλŠ” 채널 κΆŒν•œμ΄ μ„œλ²„ κΆŒν•œλ³΄λ‹€ μš°μ„ ν•©λ‹ˆλ‹€.

1개의 μ’‹μ•„μš”

λ„€, μ±„λ„μ—μ„œλŠ” λ¬Έμ œκ°€ μ—†μ–΄μš”. λ©”μ‹œμ§€ 전솑/μˆ˜μ‹ μ„ 막을 κΆŒν•œ 섀정도 μ—†μ–΄μš”.

Pong!은 μ •μƒμ μœΌλ‘œ μ „μ†‘λ˜λŠ”λ°, !discsyncλ₯Ό μ‹€ν–‰ν•˜λ €λ©΄ ν•„μš”ν•œ κΆŒν•œμ΄ μ—†λ‹€κ³  μ•Œλ €μ€˜μš”.

1개의 μ’‹μ•„μš”

μž¬ν˜„μ„ μ‹œλ„ν•΄ 보고 μžˆλŠ”λ°, μ•„μ§κΉŒμ§€λŠ” 두 λͺ…λ Ήμ–΄ λͺ¨λ‘ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

1개의 μ’‹μ•„μš”