iPhone 및 Android 앱 푸시 알림

:information_source: 요약 자체 앱을 통해 iOS 또는 Android에 Discourse 푸시 알림 전송
:hammer_and_wrench: 저장소 링크 GitHub - Sprachprofi/discourse-fcm-notifications: Send Discourse push notifications through FCM to any custom app · GitHub
:open_book: 설치 가이드 Discourse에 플러그인 설치 방법

기능

Discourse 포럼을 탐색할 수 있는 앱이 있다면, 이 플러그인을 통해 포럼이 해당 앱을 경유하여 푸시 알림을 보낼 수 있습니다. (아직 앱이 없지만 하나를 가지고 싶다면 이 미니멀리스트 솔루션을 확인해 보세요.)

사용자에게 편리함: 사용자가 개인 메시지에 대한 푸시 알림을 받으면, 해당 알림을 탭하면 앱이 열리며 해당 개인 메시지가 바로 표시됩니다. 이는 Discourse Pushover Notifications를 사용하는 것보다 큰 장점입니다. 후자의 경우 푸시 알림은 Pushover 앱을 열며 메시지에 어떻게 도달하는지 명확하지 않기 때문입니다. 반면, 앱 없이 푸시 알림을 원한다면 Pushover Notifications가 적합합니다.

범용성: Google Firebase를 메시지 계층으로 사용하므로, 해당 국가에서 Google이 금지되지 않았기만 하면 모든 iOS 및 Android 장치가 이러한 푸시 알림을 받을 수 있습니다.

설정

  1. 플러그인을 설치하고 활성화합니다.
  2. 앱을 위한 무료 Google Firebase 프로젝트를 생성합니다. Firebase 프로젝트 ID, 토큰 및 JSON(OAuth 데이터 포함)을 Discourse의 플러그인 설정에 추가합니다.
  3. 앱 코드를 조정합니다:
  • 기기의 토큰을 YOUR_FORUM.com/fcm_notifications/automatic_subscribe?token=… 로 전송하여 활성 사용자를 푸시 알림에 구독합니다. 기기 토큰이 변경될 때마다 이 호출을 수행하도록 하세요.

  • YOUR_FORUM.com/fcm_notifications/automatic_subscribe?token=REMOVE를 호출하여 활성 사용자의 구독을 해제합니다.

  • 푸시 알림은 다음과 같은 형태를 가집니다:

    'data': {
      "linked_obj_type" => 'link',
      "linked_obj_data" => <메시지에서 참조된 게시물/메시지의 URL>,
    },
    'notification': {
      title: <"USERNAME이/가 TOPIC에서 개인 메시지를 보냈습니다"와 같은 내용>,
      body: <메시지의 시작 부분>,
    }
    

따라서 제목/본문으로 푸시 알림을 표시하고, 이를 탭하면 linked_obj_data의 URL이 인앱 브라우저에서 열리도록 해야 합니다. 이는 앱 코드에서 정의해야 할 부분입니다.

구현 예시

이 플러그인과 함께 작동하는 미니멀하지만 완전히 기능적인 앱의 코드는 여기에서 가져갈 수 있습니다. (우리가 이 플러그인이 필요했던 프로덕션 앱을 만든 화이트라벨 버전입니다.) 포럼 표시, 푸시 알림 전송, 사용자의 로그인/마지막으로 읽은 주제 기억 기능만 필요한 앱이라면, 브랜딩만 변경하고 앱 스토어에 제출하면 됩니다. 그렇지 않다면 이 코드를 기반으로 사용할 수 있습니다.

이 앱에서 발생하는 수익은 플러그인의 유지보수와 추가 개발에 사용됩니다.

4개의 좋아요

푸시 알림이 Discourse Hub 앱에서 작동하나요?

Discourse Hub 앱에는 이미 푸시 알림 기능이 포함되어 있습니다.

자체 호스팅 사이트도 마찬가지인가요?

1개의 좋아요

음… 100% 확신은 못 하겠지만, 그렇게 생각하지는 않아. 그런 경우라면 이 플러그인이 꽤 유용할 거야.

현재는 그렇지 않습니다. 어떤 앱을 사용하든 코드 수정이 필요합니다.

이 플러그인을 소유하지 않은 앱과 함께 사용하는 것이 불가능할 것이라고 생각합니다. 푸시 알림은 포럼과 앱 간에 Google 인증(또는 Google Firebase를 사용하지 않는 경우 기타 인증)을 공유하는 데 의존하기 때문입니다. 이를 통해 Google은 악성 또는 스팸 알림을 보낼 책임이 있는 주체를 파악하고 해당 계정을 차단할 수 있습니다. 또한 설정 방식에 따라 Google 인증은 해당 사용자의 Google 계정에 대해 다른 작업에도 잠재적으로 사용될 수 있습니다. 따라서 Discourse Hub 앱 개발자(또는 어떤 앱 개발자든)가 자체 설치한 Discourse 포럼을 가진 모든 사람과 자신의 Google 인증을 공유하기를 원하지 않을 것이라고 생각합니다. 물론 앱 코드에 모든 사람의 Google 인증을 추가할 수도 없고(또는 다운로드 후 최종 사용자에게 그렇게 하도록 요청할 수도 없으며), Google Firebase 푸시 알림의 경우 포럼과 앱이 동일한 조직에 의해 소유되어야 하며, 이를 우회할 방법을 찾지 못하고 있습니다.

테스트할 수 있는 라이브 앱이 있나요?

위에서 설명드린 바와 같이, 이 플러그인을 포럼에 설치하고 기존 앱에 연결할 수 없습니다. 그렇게 되면 앱 소유자가 구글 인증 정보를 귀하와 공유해야 하기 때문입니다.

샘플 구현을 확인해 보려면 https://youtube.com/shorts/iGmTBmhpD4A?feature=share 를 참고해 주세요. (영상에 보이는 앱은 이 코드를 수정 없이 사용한 것입니다.) 하지만 귀하의 앱은 완전히 다른 형태일 수 있습니다. 이 플러그인은 포럼이 앱에 푸시 알림을 보내는 것만 가능하게 할 뿐, 알림이 어떻게 표시될지는 귀하가 결정합니다.