تجاوز إلى المحتوى
بوابة المطورين

بوابة مطورين حقيقية
لبناء تكاملات مستقرة.

وثائق عملية لربط متجرك بواجهة التطبيقات، قراءة آخر الإصدارات، التعامل مع الاستجابات والأخطاء، ثم طلب مفتاح API مخصص لموقعك.

v1 الإصدار الحالي JSON تنسيق الاستجابة Bearer نظام المصادقة
01مفاتيح منفصلة لكل موقع 02صلاحيات وحدود طلبات واضحة 03استجابات موحّدة قابلة للتدقيق
GET /api/v1/apps
curl -X GET \
  "https://k7gps.com/api/v1/apps" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer API_TOKEN"
200 OKapplication/json
01

كيف يعمل الربط؟

بعد اعتماد طلبك تحصل على مفتاح API مرتبط بموقعك وصلاحياته. يرسل سكربتك طلبًا إلى الواجهة، ثم يستقبل JSON موحدًا يحتوي على التطبيقات أو أحدث إصدار لتطبيق محدد.

1اطلب المفتاححدد موقعك ووسيلة التواصل.
2أرسل Bearer Tokenداخل ترويسة Authorization.
3استقبل JSONحلّل success وdata أو code.
02

المصادقة

كل طلب محمي يجب أن يحمل المفتاح بهذه الصيغة. لا ترسل المفتاح داخل الرابط ولا تعرضه في JavaScript العام.

HTTP Header
Authorization: Bearer API_TOKEN
Accept: application/json
مهم: خزّن المفتاح في متغير بيئة على الخادم، ولا ترفعه إلى GitHub أو تضعه داخل تطبيق يمكن فكّه بسهولة.
03

واجهات API المتاحة

GET/api/v1/appsapps.read

يعيد جميع التطبيقات المتاحة للتكامل.

GET/api/v1/apps/{bundle_id}/latestapps.latest

يعيد أحدث إصدار لتطبيق واحد اعتمادًا على Bundle ID.

bundle_idstring

مثال: com.example.plus

04

بنية الاستجابة

{
  "success": true,
  "count": 2,
  "data": [
    {
      "id": 15,
      "title": "Plus App",
      "bundle_id": "com.example.plus",
      "version": "2.8.0",
      "description": "وصف مختصر",
      "features": "المزايا",
      "image_url": "https://k7gps.com/uploads/apps/icon.png",
      "file_url": "https://k7gps.com/uploads/apps/app.ipa",
      "details_url": "https://k7gps.com/app-details/15",
      "updated_at": "2026-07-14 20:30:00"
    }
  ],
  "server_time": "2026-07-14T20:30:00+03:00"
}
{
  "success": true,
  "data": {
    "id": 15,
    "title": "Plus App",
    "bundle_id": "com.example.plus",
    "version": "2.8.0",
    "file_url": "https://k7gps.com/uploads/apps/app.ipa",
    "updated_at": "2026-07-14 20:30:00"
  }
}
{
  "success": false,
  "code": "INVALID_TOKEN",
  "message": "Invalid or expired API token"
}
05

أمثلة ربط جاهزة

اختر اللغة وانسخ المثال مباشرة. استبدل API_TOKEN بالمفتاح المعتمد.

PHP 7.4+
$ch = curl_init('https://k7gps.com/api/v1/apps');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTPHEADER => [
        'Accept: application/json',
        'Authorization: Bearer API_TOKEN'
    ]
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);

if ($response === false || $error !== '') {
    throw new RuntimeException($error ?: 'Connection failed');
}

$data = json_decode($response, true);
if ($status !== 200 || empty($data['success'])) {
    throw new RuntimeException($data['message'] ?? 'API request failed');
}

foreach ($data['data'] as $app) {
    echo $app['title'] . ' - ' . $app['version'];
}
Node.js / Server
const response = await fetch('https://k7gps.com/api/v1/apps', {
  headers: {
    'Accept': 'application/json',
    'Authorization': 'Bearer API_TOKEN'
  }
});

const data = await response.json();
if (!response.ok || !data.success) {
  throw new Error(data.message || 'API request failed');
}

console.log(data.data);
Python 3
import requests

response = requests.get(
    'https://k7gps.com/api/v1/apps',
    headers={
        'Accept': 'application/json',
        'Authorization': 'Bearer API_TOKEN'
    },
    timeout=30
)

data = response.json()
if not response.ok or not data.get('success'):
    raise RuntimeError(data.get('message', 'API request failed'))

for app in data['data']:
    print(app['title'], app['version'])
Swift
var request = URLRequest(url: URL(string: "https://k7gps.com/api/v1/apps")!)
request.httpMethod = "GET"
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue("Bearer API_TOKEN", forHTTPHeaderField: "Authorization")

URLSession.shared.dataTask(with: request) { data, response, error in
    guard error == nil, let data = data else { return }
    let http = response as? HTTPURLResponse
    guard http?.statusCode == 200 else { return }
    let result = try? JSONSerialization.jsonObject(with: data)
    print(result ?? "Invalid response")
}.resume()
Terminal
curl -X GET "https://k7gps.com/api/v1/apps" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer API_TOKEN"
06

الأخطاء البرمجية

HTTPCodeالمعنىالحل
401MISSING_TOKEN

لم يتم إرسال المفتاح.

أضف Authorization Bearer.

403INVALID_TOKEN

المفتاح غير صالح أو منتهي.

راجع المفتاح أو اطلب تجديده.

403PERMISSION_DENIED

الصلاحية غير مضافة للمفتاح.

اطلب تفعيل الصلاحية المطلوبة.

404APP_NOT_FOUND

Bundle ID غير موجود.

تحقق من القيمة المرسلة.

404NOT_FOUND

المسار غير موجود.

راجع إصدار ومسار API.

429RATE_LIMIT

تم تجاوز الحد الساعي.

انتظر أو اطلب رفع الحد.

07

الأمان وأفضل الممارسات

🔐خادم إلى خادم

نفذ الطلب من Backend وليس من صفحة المتصفح.

⏱️Timeout واضح

استخدم مهلة 20–30 ثانية وتعامل مع فشل الاتصال.

🔁إعادة محاولة محسوبة

أعد المحاولة عند 5xx أو انقطاع الشبكة فقط.

🧾سجل الأخطاء

احتفظ بـHTTP status وcode وmessage للتشخيص.

طلب صلاحية الوصول

اطلب مفتاح API لموقعك

أرسل بيانات الموقع وحدد وسيلة تواصل واحدة على الأقل. تتم مراجعة الطلب يدويًا، وبعد الموافقة يتم تزويدك بالمفتاح والصلاحيات عبر وسيلة التواصل المختارة.

  • مفتاح مخصص لدومين واحد
  • صلاحيات وحد استخدام قابلان للتحكم
  • إمكانية الإيقاف أو التجديد من الإدارة
يجب إدخال وسيلة تواصل واحدة على الأقل.
صُنعت بعناية بواسطة