UNPKG

@channel.io/channel-talk-integration-mcp

Version:

Channel Talk Integration MCP - Installation guides for Channel Talk SDK across multiple platforms

423 lines (328 loc) 12.2 kB
import { z } from "zod"; export function registerGetAndroidGuideTool(server) { server.tool("get_android_guide", `case1: 유저가 안드로이드 앱에 채널톡을 설치하는 방법을 알고 싶다고 말하면 이 툴을 호출합니다. case2: 이전 툴의 next_step에서 get_android_guide를 호출해야할 경우 이 툴을 호출합니다.`, { language: z .enum(["ko", "en"]) .optional() .describe("Language for the guide. Use 'en' for English, defaults to Korean if not specified"), }, (args) => { try { const language = args.language; const result = language === "en" ? getEnglishAndroidGuide() : getKoreanAndroidGuide(); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; } catch (error) { const message = error instanceof Error ? error.message : String(error); throw new Error(`Failed to execute get_android_guide: ${message}`); } }); console.log("Registered tool: get_android_guide"); } function getKoreanAndroidGuide() { return { result: `# 채널톡 Android SDK 설치 가이드 채널톡 Android SDK는 Kotlin/Java로 작성된 Android 애플리케이션에 상담을 위한 채팅 모듈과 마케팅 기능을 쉽게 설치할 수 있도록 도와줍니다. ## 📋 설치하기 전 요구사항 ### 필수 조건 - **채널톡 유료 플랜** (무료 플랜은 SDK 사용 불가) - **Android SDK ≥ 15** (실제 동작은 API 21 필요) - **Android Gradle Plugin ≥ 8.0.0** (권장) - **sourceCompatibility, targetCompatibility ≥ 1.8** - **Kotlin 1.8.22** (SDK 사용 버전, 낮은 버전 시 의존성 충돌 가능) 사용자가 필수 조건을 완료했는지 물어보세요. 완료되지 않았다면 필수 조건을 완료하도록 안내해주세요. 특히 무료플랜일 경우 유료 플랜으로 업그레이드 하도록 안내해주세요. ### API 레벨 호환성 - **설치 가능**: Android SDK 15+ - **정상 동작**: Android API 21+ (Lollipop 5.0) - **API 15~20**: 설치는 되지만 기능 이용 불가 --- ## 🛠️ 설치 과정 ${getAndroidInstallationSteps()} --- ## 🚀 SDK 구현 가이드 ${getAndroidImplementationGuide()} --- ## 🔐 보안 권장사항 ${getAndroidSecurityRecommendations()} --- ## 🔧 구현 체크리스트 ${getAndroidChecklist()} --- ## 💡 문제 해결 ### 자주 발생하는 이슈 1. **부트 실패**: 플러그인 키 확인, 네트워크 연결 확인 2. **의존성 충돌**: Kotlin 버전 확인, Gradle 설정 검토 3. **API 레벨 호환성**: 최소 API 21 확인 ### 성능 최적화 - 부트는 앱 시작 시 한 번만 실행 - 불필요한 showChannelButton 호출 최소화 - @SkipAttachChannelView 적절히 활용 ### 의존성 관리 - SDK는 가능한 한 의존성 충돌 방지를 위해 내부적으로 패키지 변경 사용 - 버전 충돌 발생 시 추가 Gradle 설정 필요 **📚 참고 문서**: https://developers.channel.io/reference/android-quickstart-kr **📦 릴리즈 노트**: 최신 버전 정보 확인 필요`, }; } function getEnglishAndroidGuide() { return { result: `# Channel Talk Android SDK Installation Guide The Channel Talk Android SDK helps you easily install chat modules and marketing features for customer support in Android applications written in Kotlin/Java. ## 📋 Requirements Before Installation ### Prerequisites - **Channel Talk paid plan** (Free plan cannot use SDK) - **Android SDK ≥ 15** (Actual operation requires API 21) - **Android Gradle Plugin ≥ 8.0.0** (Recommended) - **sourceCompatibility, targetCompatibility ≥ 1.8** - **Kotlin 1.8.22** (SDK version used, lower versions may cause dependency conflicts) Please ask if the user has completed the prerequisites. If not, guide them to complete the prerequisites. Especially if they're on a free plan, guide them to upgrade to a paid plan. ### API Level Compatibility - **Installation possible**: Android SDK 15+ - **Normal operation**: Android API 21+ (Lollipop 5.0) - **API 15~20**: Installation possible but features unavailable --- ## 🛠️ Installation Process ${getAndroidInstallationSteps()} --- ## 🚀 SDK Implementation Guide ${getAndroidImplementationGuide()} --- ## 🔐 Security Recommendations ${getAndroidSecurityRecommendations()} --- ## 🔧 Implementation Checklist ${getAndroidChecklist()} --- ## 💡 Troubleshooting ### Common Issues 1. **Boot failure**: Check plugin key, network connection 2. **Dependency conflicts**: Check Kotlin version, review Gradle settings 3. **API level compatibility**: Ensure minimum API 21 ### Performance Optimization - Execute boot only once at app startup - Minimize unnecessary showChannelButton calls - Use @SkipAttachChannelView appropriately ### Dependency Management - SDK uses internal package changes to prevent dependency conflicts when possible - Additional Gradle configuration needed when version conflicts occur **📚 Reference Documentation**: https://developers.channel.io/reference/android-quickstart **📦 Release Notes**: Check for latest version information`, }; } function getAndroidInstallationSteps() { return `### 1️⃣ 루트 build.gradle 설정 프로젝트 루트의 \`build.gradle\` 파일에 채널톡 Maven 저장소를 추가합니다: \`\`\`groovy // settings.gradle (또는 build.gradle) dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { mavenCentral() // 채널톡 Maven 저장소 추가 maven { url 'https://maven.channel.io/maven2' } } } \`\`\` ### 2️⃣ 앱 모듈 build.gradle 설정 앱 모듈의 \`build.gradle\` 파일에 의존성을 추가합니다: \`\`\`groovy dependencies { implementation 'io.channel:plugin-android:$[version]' // 최신 버전은 릴리즈 노트에서 확인 // 예: implementation 'io.channel:plugin-android:12.1.0' } \`\`\` ### 3️⃣ ProGuard 설정 (선택사항) **SDK 10.0.0 이하 버전 사용 시에만** 필요합니다: \`\`\`proguard # proguard-rules.pro -keep class com.zoyi.**{ *; } -keep class io.channel.**{ *; } -dontwarn com.zoyi.** -dontwarn io.channel.** \`\`\` **SDK 10.0.1 이상**: ProGuard 설정이 자동으로 포함되어 별도 설정 불필요`; } function getAndroidImplementationGuide() { return `### 1️⃣ Application 클래스에서 초기화 \`\`\`kotlin // MyApplication.kt import android.app.Application import io.channel.ChannelIO class MyApplication : Application() { override fun onCreate() { super.onCreate() // 채널톡 SDK 초기화 ChannelIO.initialize(this) } } \`\`\` \`\`\`java // Java 버전 public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); // 채널톡 SDK 초기화 ChannelIO.initialize(this); } } \`\`\` ### 2️⃣ AndroidManifest.xml에 Application 등록 \`\`\`xml <application android:name=".MyApplication" android:usesCleartextTraffic="true" ... > <!-- 기타 컴포넌트들 --> </application> \`\`\` ### 3️⃣ Boot 설정 #### 익명 유저로 부트 \`\`\`kotlin import io.channel.ChannelIO import io.channel.BootConfig // 익명 유저 부트 val bootConfig = BootConfig.create("YOUR_PLUGIN_KEY") // 실제 키로 교체 ChannelIO.boot(bootConfig) \`\`\` #### 멤버 유저로 부트 (로그인 사용자) \`\`\`kotlin import io.channel.Profile // 사용자 프로필 설정 val profile = Profile.create() .setName("사용자명") .setEmail("user@example.com") .setProperty("homepageUrl", "channel.io") .setProperty("customField1", "커스텀값1") // 멤버 유저 부트 설정 val bootConfig = BootConfig.create("YOUR_PLUGIN_KEY") .setMemberId("USER_UNIQUE_ID") // 유저 고유 ID .setMemberHash("USER_MEMBER_HASH") // 보안을 위한 해시값 .setProfile(profile) .setHidePopup(false) // 마케팅 팝업 표시 여부 .setTrackDefaultEvent(true) // 기본 이벤트 트래킹 ChannelIO.boot(bootConfig) { bootStatus, user -> when (bootStatus) { BootStatus.SUCCESS -> { println("채널톡 부트 성공: $user") } else -> { println("채널톡 부트 실패: $bootStatus") } } } \`\`\` ### 4️⃣ 채널 버튼 제어 \`\`\`kotlin // 채널 버튼 표시 (모든 액티비티에 표시) ChannelIO.showChannelButton() // 채널 버튼 숨기기 (모든 액티비티에서 숨김) ChannelIO.hideChannelButton() // 메신저 직접 열기 ChannelIO.open() // 메신저 닫기 ChannelIO.close() \`\`\` ### 5️⃣ 특정 액티비티에서 UI 숨기기 \`\`\`kotlin import io.channel.SkipAttachChannelView // 특정 액티비티에서 채널톡 UI 완전 숨김 @SkipAttachChannelView class SkipButtonActivity : AppCompatActivity() { // 이 액티비티에서는 채널 버튼과 팝업이 표시되지 않음 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_skip_button) } } \`\`\` ### 6️⃣ 고급 기능 #### Sleep 모드 (이벤트 트래킹만 사용) \`\`\`kotlin // 채팅 상담, 마케팅 팝업 비활성화, 이벤트 트래킹과 푸시만 사용 ChannelIO.sleep() \`\`\` #### Shutdown (완전 종료) \`\`\`kotlin // SDK 모든 기능 중지 (재사용 시 다시 boot 필요) // 로그아웃 시 사용 권장 ChannelIO.shutdown() \`\`\` #### 이벤트 트래킹 \`\`\`kotlin // 사용자 행동 추적 ChannelIO.track("Purchase", mapOf( "orderId" to "ORD-12345", "amount" to 29.99, "currency" to "USD" )) ChannelIO.track("ViewProduct", mapOf( "productId" to "PROD-001", "category" to "Electronics" )) \`\`\``; } function getAndroidSecurityRecommendations() { return `### 멤버 해시 사용 \`\`\`kotlin // ❌ 예측 가능한 memberId 사용 금지 val bootConfig = BootConfig.create("YOUR_PLUGIN_KEY") .setMemberId("user@email.com") // 위험: 예측 가능 // ✅ 서버에서 생성한 해시값 사용 권장 val bootConfig = BootConfig.create("YOUR_PLUGIN_KEY") .setMemberId("USER_UNIQUE_ID") .setMemberHash(serverGeneratedHash) // 안전: 서버 생성 해시 \`\`\` ### Cleartext Traffic 설정 HTTP 링크 지원이 필요한 경우에만 사용: \`\`\`xml <!-- AndroidManifest.xml --> <application android:usesCleartextTraffic="true" ... > \`\`\` **⚠️ 보안 주의**: 모든 HTTP 요청 허용은 보안 위험을 증가시킬 수 있습니다.`; } function getAndroidChecklist() { return `### 프로젝트 설정 - [ ] 채널톡 유료 플랜 가입 확인 - [ ] Android SDK 15+ 환경 확인 - [ ] Gradle Plugin 8.0.0+ 확인 - [ ] Kotlin 1.8.22 호환성 확인 ### 의존성 설정 - [ ] 루트 build.gradle에 채널톡 Maven 저장소 추가 - [ ] 앱 build.gradle에 채널톡 SDK 의존성 추가 - [ ] SDK 10.0.0 이하 사용 시 ProGuard 설정 ### 코드 구현 - [ ] Application 클래스 생성 및 초기화 코드 추가 - [ ] AndroidManifest.xml에 Application 등록 - [ ] 실제 플러그인 키로 "YOUR_PLUGIN_KEY" 교체 - [ ] 부트 설정 (익명 또는 멤버 유저) - [ ] 채널 버튼 표시/숨김 로직 구현 ### 고급 설정 - [ ] 특정 액티비티 UI 숨김 설정 (필요 시) - [ ] 이벤트 트래킹 구현 (필요 시) - [ ] Sleep/Shutdown 로직 구현 (필요 시) ### 보안 설정 - [ ] 멤버 유저 사용 시 memberHash 구현 - [ ] 서버 사이드 해시 생성 로직 구현 - [ ] Cleartext Traffic 필요성 검토 ### 테스트 - [ ] 부트 성공/실패 상황 테스트 - [ ] 채널 버튼 표시 확인 - [ ] 메신저 정상 작동 확인 - [ ] 다양한 Android 버전에서 테스트`; } //# sourceMappingURL=get-android-guide.tool.js.map