Accueil Docs Tarifs À propos Admin

SDK Dart – SoftAfrik Push API

Client Dart pour serveurs et micro-services.

1. Installation

Ajoutez http dans votre pubspec.yaml :

dependencies:
  http: ^1.2.0

Structure recommandée

/your-dart-project
    lib/
        softafrik_push_client.dart
    example.dart

2. SDK Dart – softafrik_push_client.dart

import 'dart:convert';
import 'package:http/http.dart' as http;

class SoftAfrikPushClient {
  final String apiKey;
  final String baseUrl;

  SoftAfrikPushClient(
    this.apiKey, {
    this.baseUrl = "https://softafrik-push-api.brillanciel.com",
  });

  Future _post(String path, Map payload) async {
    final url = Uri.parse("$baseUrl$path");
    final res = await http.post(
      url,
      headers: {
        "X-API-KEY": apiKey,
        "Content-Type": "application/json",
      },
      body: jsonEncode(payload),
    );
    return jsonDecode(res.body);
  }

  Future registerUser(String externalUserRef, {Map? meta}) {
    return _post("/api/users/register", {
      "external_user_ref": externalUserRef,
      "meta": meta ?? {}
    });
  }

  Future registerDevice(
    String puid,
    String appName,
    String platform,
    String deviceToken, {
    String? deviceUid,
    String? lang,
    String? country,
  }) {
    final payload = {
      "puid": puid,
      "app_name": appName,
      "platform": platform,
      "device_token": deviceToken
    };
    if (deviceUid != null) payload["device_uid"] = deviceUid;
    if (lang != null) payload["lang"] = lang;
    if (country != null) payload["country"] = country;

    return _post("/api/devices/register", payload);
  }

  Future pushToUser(String puid, String title, String body,
      {Map? data}) {
    return _post("/api/push/to-user", {
      "puid": puid,
      "title": title,
      "body": body,
      "data": data ?? {}
    });
  }
}

3. Exemple d’utilisation

import 'softafrik_push_client.dart';

void main() async {
  final client = SoftAfrikPushClient("VOTRE_API_KEY");

  final user = await client.registerUser(
    "user_123",
    meta: {"full_name": "John Doe"},
  );

  print(user);

  final puid = user["puid"];

  final resp = await client.pushToUser(
    puid,
    "Transfert reçu",
    "Vous avez reçu 20 000 XOF",
    data: {"transaction_id": 9932},
  );

  print(resp);
}
Endpoints
  • POST /api/users/register
  • POST /api/devices/register
  • POST /api/push/to-user
  • POST /api/push/to-device
  • POST /api/push/broadcast
final client = SoftAfrikPushClient("API_KEY");
final r = await client.pushToUser("sa_10_xx", "Ping", "Hello");
print(r);