Fynchat · فينشات

Mobile SDKs (iOS + Android)

مكتبات Swift و Kotlin لاستخدام Fynchat داخل تطبيقاتك المحمولة.

توثيق الـ API

ما الذي تحصل عليه؟

ملفّان جاهزان للسحب والإفلات:

  • iOS: Fynchat.swift — يعمل من iOS 13 فما فوق (async/await)
  • Android: Fynchat.kt — يعمل من API 24 فما فوق

كلاهما يدعم:

  • إرسال الرسائل (text + template)
  • إدارة جهات الاتصال (CRUD)
  • استعلام المحادثات والقوالب والحملات
  • التحقّق من توقيع Webhooks (HMAC SHA-256)

iOS (Swift)

التركيب

  1. حمّل Fynchat.swift
  2. اسحبه إلى مشروع Xcode
  3. يستخدم الـ SDK CryptoKit و URLSession فقط — لا dependencies إضافية

الاستخدام

let fl = Fynchat(apiKey: "fynk_live_xxx")

// نص حر
try await fl.messages.sendText(to: "+966501234567", text: "مرحباً")

// قالب موافَق عليه
try await fl.messages.sendTemplate(
    to: "+966501234567",
    name: "welcome_offer",
    language: "ar",
    variables: ["أحمد", "RAMADAN20"]
)

// إنشاء جهة اتصال
let contact = try await fl.contacts.create(
    phone: "+966501234567",
    name: "أحمد محمد",
    tags: ["VIP"]
)

التحقّق من Webhook (في app extension أو push receiver)

let valid = Fynchat.verifyWebhook(
    body: rawBody,
    signature: signatureHeader,
    secret: "whsec_xxx"
)

Android (Kotlin)

التركيب

  1. حمّل Fynchat.kt
  2. ضعه في مشروعك تحت com.fyntralink.sdk
  3. أضف الـ dependencies في app/build.gradle:
dependencies {
    implementation("com.squareup.okhttp3:okhttp:4.12.0")
    implementation("org.json:json:20231013")
}

الاستخدام

import com.fyntralink.sdk.Fynchat

val fl = Fynchat("fynk_live_xxx")

// النداءات HTTP synchronous — استخدمها داخل Coroutine أو Thread
GlobalScope.launch(Dispatchers.IO) {
    fl.messages.sendText("+966501234567", "مرحباً")
    fl.messages.sendTemplate(
        to = "+966501234567",
        name = "welcome_offer",
        language = "ar",
        variables = listOf("أحمد", "RAMADAN20")
    )
    val contact = fl.contacts.create("+966501234567", name = "أحمد")
}

التحقّق من Webhook

val valid = Fynchat.verifyWebhook(
    body = rawBody,
    signature = signatureHeader,
    secret = "whsec_xxx"
)

أمان داخل التطبيق

لا تضع API key مباشرة في التطبيق المحمول! يمكن للمستخدمين استخراجه.

البدائل:

  1. Backend Proxy: يرسل التطبيق إلى الـ backend الخاص بك، والـ backend يستدعي Fynchat
  2. Per-User Tokens: أنشئ نظام tokens خاصاً بمستخدمي تطبيقك (يتطلّب تطويراً)
  3. مفاتيح محدودة الصلاحية: أنشئ مفتاحاً بصلاحية messages.send فقط مع IP whitelist

المساعدة

نسخ Pro من الـ SDKs (مع UI components جاهزة) متاحة لعملاء Enterprise. تواصل عبر [email protected].

روابط سريعة