설정
포털
포털 커스터마이즈
demo.townhall.team
TownHall Demo
인기순
최신순
새 피드백
완료
·
·
14
진행 중
·
·
8
종료
·
·
5
모든 게시물
버그 리포트
개선 사항
기능 요청
전체
개선
수정
신규
Mar 09
신규
Mar 07
개선
포털 헤더에 표시할 탭을 선택하세요.
추천 색상
포털 강조 색상에 사용됩니다.
이 색상은 흰색 텍스트와의 대비가 부족합니다 (WCAG AA). 대비율:
저장되었습니다
포털 설치 가이드
고객에게 이 링크를 공유하면 됩니다.
https://demo.townhall.team
Step 1. 포털 URL 확인
아래 URL을 앱의 WebView에 로드하세요.
https://demo.townhall.team
Step 2. 플랫폼별 WebView 연동
사용하는 플랫폼에 맞는 코드를 복사하세요.
iOS (Swift)
import WebKit
let url = URL(string: "https://demo.townhall.team")!
let webView = WKWebView(frame: view.bounds)
webView.load(URLRequest(url: url))
Android (Kotlin)
val url = "https://demo.townhall.team"
val webView = findViewById<WebView>(R.id.webview)
webView.settings.javaScriptEnabled = true
webView.settings.domStorageEnabled = true
webView.loadUrl(url)
React Native
import { WebView } from 'react-native-webview';
const uri = 'https://demo.townhall.team';
<WebView source={{ uri }} javaScriptEnabled domStorageEnabled />
Flutter
import 'package:webview_flutter/webview_flutter.dart';
final url = 'https://demo.townhall.team';
WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..loadRequest(Uri.parse(url));
고급: 고객 자동 식별
로그인 사용자를 자동 식별하려면 JWT 토큰을 사용하세요.
1. JWT 토큰 발급 (서버 사이드)
앱 서버에서 Identify API를 호출하세요. 클라이언트에서 직접 호출하지 마세요.
curl -X POST \
-H "X-TownHall-Key: pk_8913c022699070d82f678cd9796e89636a1deb1aad6f3ccd" \
-H "Content-Type: application/json" \
-d '{"user":{"id":"user_123","email":"user@example.com","name":"John"}}' \
https://demo.townhall.team/api/v1/customers/identify
# Response: { "token": "eyJhbG...", "customer": { ... } }
2. 위젯 URL 구성
발급받은 토큰을 위젯 URL에 포함합니다. tab 파라미터로 초기 탭을 지정할 수 있습니다.
https://townhall.team/w?pk=pk_8913c022699070d82f678cd9796e89636a1deb1aad6f3ccd&token={JWT_TOKEN}&tab=feedback
tab=feedback — feedback — 피드백 보드 (기본값)
tab=changelog — changelog — 체인지로그
보안 유의사항
- JWT 토큰 발급은 반드시 서버 사이드에서 수행하세요.
- Public Key는 클라이언트에 포함해도 안전하지만, JWT 발급에 사용하는 API 호출은 서버를 경유하세요.
- 토큰은 24시간 후 만료됩니다. 앱에서 적절히 갱신 로직을 구현하세요.
아래 프롬프트를 AI 코딩 도구에 붙여넣으세요.
Cursor, Claude Code, ChatGPT 등 어디서든 사용할 수 있습니다.
우리 앱에 TownHall 피드백 포털을 WebView로 연동해줘.
## 1. 기본 연동
아래 URL을 WebView에 로드해:
https://demo.townhall.team
JavaScript와 DOM Storage를 활성화해야 정상 동작해.
## 2. 사용자 식별 (선택)
로그인된 사용자를 자동 식별하려면, 앱 서버에서 아래 API를 호출해서 JWT 토큰을 받아:
POST https://demo.townhall.team/api/v1/customers/identify
Header: X-TownHall-Key: pk_8913c022699070d82f678cd9796e89636a1deb1aad6f3ccd
Body: {"user":{"id":"사용자ID","email":"이메일","name":"이름"}}
응답에서 받은 token을 URL에 붙여서 WebView에 로드해:
https://demo.townhall.team/w?pk=pk_8913c022699070d82f678cd9796e89636a1deb1aad6f3ccd&token={JWT_TOKEN}&tab=feedback