# واجهة برمجة التطبيقات المرتكزة على المستخدم

## registerUser

`POST` `https://api.pushwoosh.com/json/1.3/registerUser`

تربط User ID خارجي بجهاز محدد.

#### رؤوس الطلب

| الاسم          | مطلوب | القيمة         | الوصف                                                                                                                              |
|---------------|----------|---------------|------------------------------------------------------------------------------------------------------------------------------------|
| Authorization | نعم      | Token `XXXX`  | [API Device Token](/ar/developer/api-reference/api-access-token/#device-api-token) للوصول إلى واجهة برمجة تطبيقات الجهاز. استبدل `XXXX` برمز API Device Token الفعلي الخاص بك. |

#### جسم الطلب

| الاسم        | مطلوب | النوع    | الوصف                                                                                                                               |
| ----------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| userId      | لا       | string  | [User ID](/ar/developer/api-reference/api-identifiers/#user-id) لربطه بجهاز. إذا كان فارغًا، استخدم hwid.                               |
| application | نعم      | string  | [رمز تطبيق Pushwoosh](/ar/developer/api-reference/api-identifiers/#application-code)                                                  |
| hwid        | نعم      | string  | [Pushwoosh HWID](/ar/developer/api-reference/api-identifiers/#hardware-id)                                                            |
| tz\_offset  | لا       | integer | إزاحة المنطقة الزمنية بالثواني للجهاز.                                                                                                |
| device\_type| لا       | integer | [نوع الجهاز](/ar/developer/api-reference/api-identifiers/#device-type). انظر القيم الممكنة في `/registerDevice`.                           |

يمكن استخدامه لاحقًا في استدعاء واجهة برمجة التطبيقات [`/createMessage`](/ar/developer/api-reference/messages-api/#createmessage) (معلمة _users_).\
يمكنك استدعاء هذه الدالة قبل أن يكون لديك push token وقبل استدعاء [`/registerDevice`](/ar/developer/api-reference/device-api/#registerdevice).

#### مثال على الطلب

```json
{
  "request": {
    "userId": "user_3078a",                     // optional. If empty, use hwid
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "hwid": "8f65b16df378e7a6bece9614e1530fb2", // required. Hardware device ID
    "tz_offset": -3600,                         // optional. Timezone offset in seconds
    "device_type": 3                            // optional. Device type, see /registerDevice
                                                //           for device types
  }
}
```

#### مثال على الاستجابة

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200, 
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

<Aside type="note">
بالنسبة لرسائل البريد الإلكتروني، استدعِ [`/registerEmailUser`](/ar/developer/api-reference/email-api/#registeremailuser).
</Aside>

## deleteUser

`POST` `https://api.pushwoosh.com/api/v2/device-api/deleteUser`

يحذف مستخدمًا وجميع الأجهزة المرتبطة بـ [User ID](/ar/developer/api-reference/api-identifiers/#user-id) المحدد داخل التطبيق. تتم معالجة الطلب بشكل غير متزامن، وتعيد نقطة النهاية `200 OK` بمجرد قبول طلب الحذف للمعالجة.

#### رؤوس الطلب

| الاسم          | مطلوب | القيمة            | الوصف                                                                                                                              |
|---------------|----------|------------------|------------------------------------------------------------------------------------------------------------------------------------|
| Authorization | نعم      | Token `XXXX`     | [API Device Token](/ar/developer/api-reference/api-access-token/#device-api-token) للوصول إلى واجهة برمجة تطبيقات الجهاز. استبدل `XXXX` برمز API Device Token الفعلي الخاص بك. |
| Content-Type  | نعم      | application/json |                                                                                                                                    |

#### جسم الطلب

| الاسم        | مطلوب | النوع   | الوصف                                                                                                                                     |
| ----------- | -------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
| application | نعم      | string | [رمز تطبيق Pushwoosh](/ar/developer/api-reference/api-identifiers/#application-code)                                                       |
| user\_id    | نعم      | string | [User ID](/ar/developer/api-reference/api-identifiers/#user-id) المراد حذفه. ستتم إزالة جميع الأجهزة المرتبطة بهذا المستخدم في التطبيق المحدد. |


#### مثال على الطلب

```json
{
  "application": "XXXXX-XXXXX",   // required. Pushwoosh application code
  "user_id": "user_3078a"         // required. User ID to delete
}
```

#### مثال على الاستجابة

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

##### رموز الحالة

| رمز حالة HTTP | status\_code | الوصف                                              |
| ---------------- | ------------ | -------------------------------------------------- |
| 200              | 200          | تم قبول طلب الحذف                                  |
| 200              | 210          | خطأ في الوسيطة. انظر status\_message لمزيد من المعلومات. |
| 400              | N/A          | سلسلة طلب غير صالحة                                |
| 401              | N/A          | رمز Authorization مفقود أو غير صالح                |
| 500              | 500          | خطأ داخلي                                         |

## postEvent

`POST` `https://api.pushwoosh.com/json/1.3/postEvent`

يُطلق حدثًا.

#### رؤوس الطلب

| الاسم          | مطلوب | القيمة         | الوصف                                                                                                                              |
|---------------|----------|---------------|------------------------------------------------------------------------------------------------------------------------------------|
| Authorization | نعم      | Token `XXXX`  | [API Device Token](/ar/developer/api-reference/api-access-token/#device-api-token) للوصول إلى واجهة برمجة تطبيقات الجهاز. استبدل `XXXX` برمز API Device Token الفعلي الخاص بك. |


#### جسم الطلب

| الاسم             | مطلوب | النوع    | الوصف                                                                                                                                                                     |
| ---------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| hwid             | نعم      | string  | [معرف الجهاز (Hardware device ID)](/ar/developer/api-reference/api-identifiers/#hardware-id) المستخدم في طلب /registerDevice. يمكن استخدامه مع 'userId' لتحديد مستخدم أطلق حدثًا. |
| application      | نعم      | string  | [رمز تطبيق Pushwoosh](/ar/developer/api-reference/api-identifiers/#application-code)                                                                                       |
| event            | نعم      | string  | [اسم الحدث](/ar/developer/api-reference/api-identifiers/#event-name) تمامًا كما تم إنشاؤه في لوحة تحكم Pushwoosh.                                                             |
| attributes       | نعم      | object  | كائن JSON مع سمات الحدث. اتركه فارغًا إذا لم تكن هناك حاجة لتمرير أي سمات.                                                                                              |
| timestampUTC     | لا       | integer | الطابع الزمني بتوقيت UTC.                                                                                                                                               |
| timestampCurrent | لا       | integer | الطابع الزمني بالوقت المحلي.                                                                                                                                           |
| userId           | نعم      | string  | [User ID](/ar/developer/api-reference/api-identifiers/#user-id) المرتبط بمستخدم أطلق الحدث. يمكن استبداله بـ HWID أو استخدامه معه.                                         |
| device\_type     | لا       | integer | [انظر القيم الممكنة](/ar/developer/api-reference/api-identifiers/#device-type)                                                                                           |

يجب أن يتطابق اسم الحدث في الطلب مع اسم الحدث في لوحة تحكم Pushwoosh. لاحظ أن خاصية "attributes" قد تكون فارغة (ولكن لا يمكن حذفها) في حال لم يكن للحدث أي سمات.

#### مثال على الطلب

```json
{
  "request":{ 
    "hwid": "8f65b16df378e7a6bece9614e1530fb2", // required. Hardware device ID used in a /registerDevice API.
                                                //           Can be used along with an userId to identify a 
                                                //           user who has triggered an event.
    "application": "XXXXX-XXXXX",               // required. Pushwoosh application code
    "event": "activityCompleted",               // required. Event name exactly as created in Pushwoosh Control Panel
    "attributes": {                             // required. Leave empty if no attributes need to be passed. 
      "login": "facebook",
      "success": "yes",
      "internet": "wifi"
    },
    "timestampUTC": 1435228403,                 // optional. Timestamp in UTC
    "timestampCurrent": 1435253603,             // optional. Timestamp in local time
    "userId": "someuser@user.com",              // required. A user id which is used for identification of 
                                                //           users on multiple devices. Can be replaced by
                                                //           or used along with an HWID.
    "device_type": 1                            // optional.
  }
}

```

#### مثال على الاستجابة

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "code": "61BC9-84DD0"
  }
}
```
</TabItem>
</Tabs>

#### إرسال أحداث التحويل

للإبلاغ عن الإيرادات مباشرة بدلاً من [ربط حدث موجود](/ar/product/audience-data-and-segmentation/events/conversion-events/)، أرسل `postEvent` مع `PW_Conversion` كاسم للحدث وقيمة `value` وعملة `currency` للمعاملة في `attributes`:

```json
{
  "request":{
    "hwid": "8f65b16df378e7a6bece9614e1530fb2",
    "application": "XXXXX-XXXXX",
    "event": "PW_Conversion",
    "attributes": {
      "value": 49.99,               // required. Transaction amount
      "currency": "USD",            // required. ISO 4217 currency code
      "transaction_id": "txn_8f21", // optional. Your own transaction reference
      "product_id": "prod_premium"  // optional
    },
    "userId": "someuser@user.com"
  }
}
```

<Aside type="note">
لا يتم استخدام `transaction_id` بواسطة Pushwoosh لإلغاء تكرار الإيرادات — يتم تخزينه كما هو لإعداد التقارير والمطابقة الخاصة بك. إذا أبلغت عن نفس المعاملة أكثر من مرة، فسيتم تسجيل كل استدعاء على حدة. انظر [أحداث التحويل](/ar/product/audience-data-and-segmentation/events/conversion-events/) لمعرفة كيفية توافق الأحداث الأساسية وربط الأحداث معًا.
</Aside>