Skip to content

Commit

Permalink
minor Improvements (#118)
Browse files Browse the repository at this point in the history
* improve doc quality

* fix typo's

* fix icon_name deprecation

---------

Co-authored-by: Mobin Pourabedini <[email protected]>
Co-authored-by: Saeed Alipoor <[email protected]>
  • Loading branch information
3 people authored Jan 11, 2025
1 parent 8c49775 commit 3b8ab1d
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 27 deletions.
16 changes: 12 additions & 4 deletions chat/chatbot_conversations.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Content-Type: application/json
{
"type": "NEW_CHATBOT_MESSAGE",
"new_chatbot_message": {
"message_text": "hello world",
"id": {{message_id}},
"conversation": {
"id": {{conversation_id}},
Expand Down Expand Up @@ -54,7 +55,7 @@ X-Api-Key: {your-api-key}
"action": {
"open_direct_link": "آدرس مورد نظر برای باز شدن بعد از کلیک"
},
"icon_name": "نام آیکون",
"icon_name": "REAL_STATE",
"caption": "متن دکمه"
},
{
Expand All @@ -66,7 +67,7 @@ X-Api-Key: {your-api-key}
}
}
},
"icon_name": "نام آیکون",
"icon": "HOME",
"caption": "متن دکمه"
}
]
Expand All @@ -76,6 +77,10 @@ X-Api-Key: {your-api-key}
}
```

### Icons
[آیکون‌ها][آیکون‌ها] موجود برای دکمه‌ها


#### مثال

در اینجا یک مثال از ارسال پیام با استفاده از `curl` آمده است:
Expand All @@ -95,7 +100,7 @@ curl --location 'https://api.divar.ir/experimental/open-platform/chatbot-convers
"action": {
"open_direct_link": "آدرس مورد نظر برای باز شدن بعد از کلیک"
},
"icon_name": "نام آیکون",
"icon": "REAL_STATE",
"caption": "متن دکمه"
},
{
Expand All @@ -107,7 +112,7 @@ curl --location 'https://api.divar.ir/experimental/open-platform/chatbot-convers
}
}
},
"icon_name": "نام آیکون",
"icon": "HOME",
"caption": "متن دکمه"
}
]
Expand All @@ -116,3 +121,6 @@ curl --location 'https://api.divar.ir/experimental/open-platform/chatbot-convers
}
}'
```

[آیکون‌ها]: https://www.figma.com/design/ZhhSihwKTjiER1VUDX4ovh/%F0%9F%93%92-Kenar-Docs-(WIP)?node-id=1501-2225&p=f

55 changes: 35 additions & 20 deletions chat/users_conversations.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# ارسال پیام در چت

برنامه‌‌های کنار دیوار می‌توانند پس از [کسب اجازه از کاربر][احراز باز]، در یک چت یا چت‌های یک آگهی پیام ارسال کنند.
پیام‌های ارسالی از طرف کاربری که دسترسی به برنامه را داده و درخواست از سمتش بوده در چت ارسال می‌شود و هر دو طرف چت یک متن پیام می‌بینند، اما امکان درج دکمهٔ متفاوت برای طرفین چت وجود دارد.\
پیام‌های ارسالی از طرف کاربری که دسترسی به برنامه را داده و درخواست از سمتش بوده در چت ارسال می‌شود و هر دو طرف چت یک
متن پیام می‌بینند، اما امکان درج دکمهٔ متفاوت برای طرفین چت وجود دارد.\
به علاوه در قسمت بالای پیام، عنوان برنامهٔ مورد نظر نشان داده می‌شود.

| ![نمایی از یک پیام ارسال شده توسط بات](/img/bot-message.png) |
|:------------------------------------------------------------:|
| <sub dir="rtl">نمایی از یک پیام ارسال شده توسط بات</sub> |

> ⭐️ بهتر است پیامی که در چت ارسال می‌کنید برای هر دو طرف معنادار باشد و اطلاعات مفید در راستای خدمت دریافت شده ارائه دهد.
> ⭐️ بهتر است پیامی که در چت ارسال می‌کنید برای هر دو طرف معنادار باشد و اطلاعات مفید در راستای خدمت دریافت شده ارائه
> دهد.
> 🛑 برای مقاصد تبلیغاتی یا معرفی امکانات و خدماتتان پیام ارسال نکنید.
Expand All @@ -17,15 +19,18 @@
برای اینکه بتوانید در یک چت پیامی ارسال کنید، نیاز است تا اجازهٔ دسترسی در دو نقطه فراهم شده‌باشد:\
۱. برنامهٔ شما به صورت کلی دسترسی لازم را در [پنل کنار دیوار][پنل کنار] گرفته‌باشد.\
۲. [از کاربر اجازه گرفته‌باشید][احراز باز] و `access_token` ارسالی در درخواستتان این اجازه را داشته‌باشد:

- SCOPE: CONVERSATION_SEND_MESSAGE
- IDENTIFIER: CONVERSATION_ID

دو نوع دسترسی برای ارسال پیام در چت وجود دارد که برای هر کدام می‌توان جداگانه از کاربر اجازه گرفت. ارسال پیام در **یک چت** و ارسال پیام در **چت‌های یک آگهی**
دو نوع دسترسی برای ارسال پیام در چت وجود دارد که برای هر کدام می‌توان جداگانه از کاربر اجازه گرفت. ارسال پیام در **یک چت
** و ارسال پیام در **چت‌های یک آگهی**
جزییات و پارامترهای لازم برای درخواست دسترسی و ایجاد `access_token` را در [صفحهٔ احراز باز][احراز باز] ببینید.

## درخواست ارسال پیام در چت

در صورتی که اجازهٔ این درخواست رو طبق توضیحات بالا و [صفحهٔ احراز باز][احراز باز] داشته‌باشید، با ارسال درخواستی مشابه نمونهٔ زیر می‌توانید در چت مورد نظرتان پیام وارد کنید.
در صورتی که اجازهٔ این درخواست رو طبق توضیحات بالا و [صفحهٔ احراز باز][احراز باز] داشته‌باشید، با ارسال درخواستی مشابه
نمونهٔ زیر می‌توانید در چت مورد نظرتان پیام وارد کنید.

می‌توانید قسمت‌های فارسی را با مقادیر خودتان جایگزین کنید:

Expand All @@ -46,7 +51,7 @@ x-access-token: {{access_token}}
"action": {
"open_direct_link": "آدرس مورد نظر برای باز شدن بعد از کلیک"
},
"icon_name": "نام آیکون",
"icon": "نام آیکون",
"caption": "متن دکمه"
},
{
Expand All @@ -58,7 +63,7 @@ x-access-token: {{access_token}}
}
}
},
"icon_name": "نام آیکون",
"icon": "نام آیکون",
"caption": "متن دکمه"
}
]
Expand All @@ -73,7 +78,7 @@ x-access-token: {{access_token}}
"action": {
"open_direct_link": "آدرس مورد نظر برای باز شدن بعد از کلیک"
},
"icon_name": "نام آیکون",
"icon": "CAR_INSPECTED",
"caption": "متن دکمه"
},
{
Expand All @@ -85,7 +90,7 @@ x-access-token: {{access_token}}
}
}
},
"icon_name": "نام آیکون",
"icon": "REAL_STATE",
"caption": "متن دکمه"
}
]
Expand All @@ -110,62 +115,72 @@ x-access-token: {{access_token}}
|------------|--------------------------------|-----------------------------------------|
| rows | Array[[ButtonRow](#ButtonRow)] | آرایه‌ای از ردیف دکمه‌ها. حداکثر ۳ ردیف |


### ButtonRow

| Field Name | Field Type | Description |
|------------|--------------------------|-----------------------------------------------|
| buttons | Array[[Button](#Button)] | آرایه‌ای از دکمه‌ها. حداکثر ۳ دکمه در هر ردیف |


### Button

| Field Name | Field Type | Description |
|------------|------------------|-------------------------------------------------|
| action | [Action][Action] | اکشنی که پس از کلیک کاربر بر روی دکمه رخ می‌دهد |
| icon_name | String | نام آیکون نمایش داده‌شده بر روی دکمه |
| caption | String | متنی که بر روی دکمه نمایش داده می‌شود |

| Field Name | Field Type | Description |
|------------|-----------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| action | [Action][Action] | اکشنی که پس از کلیک کاربر بر روی دکمه رخ می‌دهد |
| icon | [Icon](https://www.figma.com/design/ZhhSihwKTjiER1VUDX4ovh/%F0%9F%93%92-Kenar-Docs-(WIP)?node-id=1501-2225&p=f) | نام آیکون نمایش داده‌شده بر روی دکمه |
| caption | String | متنی که بر روی دکمه نمایش داده می‌شود |

### خطاها

ممکن است در پاسخ این درخواست خطا به صورت زیر دریافت شود:

```HTTP
HTTP/1.1 412
{
"code": 9,
"message": "message delivery failed due to recipient's restriction"
}
```

این خطا به چند دلیل می ‌تواند دریافت شود:

- کاربر توسط کاربر مقابل در چت مسدود شده باشد
- کاربر یا کاربر مقابل در بلک لیست باشند.
- ...

## دسترسی ارسال پیام در تمام مکالمات یک آگهی

دسترسی قبلی تنها مربوط به یک مکالمه می‌باشد، اما با داشتن این دسترسی می‌توانید در تمام مکالمات مربوط به یک آگهی از طرف آگهی گذار پیام بفرستید:
دسترسی قبلی تنها مربوط به یک مکالمه می‌باشد، اما با داشتن این دسترسی می‌توانید در تمام مکالمات مربوط به یک آگهی از طرف
آگهی گذار پیام بفرستید:

- SCOPE: CHAT_POST_CONVERSATIONS_MESSAGE_SEND
- IDENTIFIER: POST_TOKEN

## دسترسی ارسال پیام در تمام مکالمات تمام آگهی‌های آگهی گذار

در صورتی که نیاز دارید در تمام چت‌هایی که کاربر سمت آگهی گذار می‌باشد، پیام ارسال کنید می‌توانید از اسکوپ زیر استفاده که `RESOURCE_ID` یا `IDENTIFIER` ندارد:
- SCOPE: CHAT_SUPPLIER_ALL_CONVERSATIONS_MESSAGE_SEND
در صورتی که نیاز دارید در تمام چت‌هایی که کاربر سمت آگهی گذار می‌باشد، پیام ارسال کنید می‌توانید از اسکوپ زیر استفاده که
`RESOURCE_ID` یا `IDENTIFIER` ندارد:

- SCOPE: CHAT_SUPPLIER_ALL_CONVERSATIONS_MESSAGE_SEND

## کلیک کاربر روی دکمهٔ درج شده زیر پیام

پس از کلیک کاربر بر روی دکمه‌های پیام، با توجه به [اکشنی][Action] که بر روی دکمه تعریف شده است،
پس از کلیک کاربر بر روی دکمه‌های پیام، با توجه به [اکشنی][Action] که بر روی دکمه تعریف شده است،
کاربر به سمت برنامه‌ی شما هدایت می‌شود.

<br>

[احراز باز]: /oauth

[API key]: /management/api-keys.md

[Action]: /widgets/actions

[پنل کنار]: /management

[ارسال پیام در یک چت]: #ارسال-پیام-در-یک-چت

[ارسال پیام در چت‌های آگهی]: #ارسال-پیام-در-چتهای-یک-آگهی

[بازشدن برنامه]: #کلیک-کاربر-روی-دکمهٔ-درج-شده-زیر-پیام


Expand Down
2 changes: 1 addition & 1 deletion migrations/001_user_addon_v2+addon_v2+user_semantic.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ x-access-token: {{access_token}}
- خود ویجت های دیوار نیز تغییر کرده اند. در این ورژن این ویجت ها ساده تر و خواناتر شده اند. طبق [این قسمت](#new-widgets) تک تک ویجت هارا تغییر دهید.
- فیلد `semantic` مانند قبل یک `object` است که value های استرینگی دارد منتهی فیلد `semantic_sensitives` به طور کامل حذف شده است، هر فیلدی که در [اینجا](/semantic/semantic_data.md#فیلد-های-تعیین-شده) تعیین نشده باشد رمز می‌شود. برای اضافه کردن فیلد با تیم دیواری مربوطه در ارتباط باشید. سپس `sensitive_semantics` را حذف کنید و طبق [اینجا](/semantic/semantic_data.md#فیلد-های-تعیین-شده) فیلد های مورد نظر خود را قرار دهید.
- فیلد های `phone, notes, management_permalink` را از `body` نیز حذف کنید.
- فیلد `verifcation_cost` را به `cost` تغییر نام دهید.
- فیلد `verification_cost` را به `cost` تغییر نام دهید.

```diff
-POST https://api.divar.ir/v1/open-platform/addons/user/{{phone}}
Expand Down
2 changes: 1 addition & 1 deletion semantic/semantic_data.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
فیلد های زیر توسط تیم سرچ دیوار تعیین شده‌اند و با توجه به اپ شما **ممکن** است منجر به بدج شوند:
- فیلد`payment_method` برای توصیف نحوه پرداخت کاربر مقادیر مجاز: ‍ ‍‍‍‍ `SECURE`
- فیلد `identity_verification_result` برای توصیف نتیحه احراز کاربر مقادیر مجاز: `FACE_AND_ID_MATCHED`
- فیلد `post_verifcation_result` برای توصیف نتیجه احراز آگهی مقادیر مجاز : `POST_INFORMATION_MATCHED`
- فیلد `post_verification_result` برای توصیف نتیجه احراز آگهی مقادیر مجاز : `POST_INFORMATION_MATCHED`
- فیلد `status` برای توصیف وضعیت احراز مقادیر مجاز : `SUCCEEDED`, `FAILED` ,`EXPIRED`
- فیلد `identity_verification_last_successful_stage` برای مشخص کردن آخرین مرحله موفق احراز هویت مقادیر مجاز : `IDENTITYVERIFICATIONSTAGE_NOT_STARTED`, `NATIONAL_INFO_VERIFICATION`, `IMAGE_VERIFICATION` ,`VIDEO_VERIFICATION`
- فیلد `identity_verification_failure_reason` برای مشخص کردن دلیل ناموفق بودن احراز هویت مقادیر مجاز : `IDENTITYVERIFICATIONSTAGE_NOT_STARTED`, `NATIONAL_INFO_VERIFICATION`, `IMAGE_VERIFICATION` ,`VIDEO_VERIFICATION`
Expand Down
2 changes: 1 addition & 1 deletion semantic/user_semantic_create.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ x-api-key: {{api-key}}
{
"semantic": {
"identity_verifcation_result": "FACE_AND_ID_MATCHED",
"identity_verification_result": "FACE_AND_ID_MATCHED",
"some-key": "some value to be hashed"
},
"ticket_uuid": "812d56e6-e44d-45e7-8932-f9acbd416999",
Expand Down

0 comments on commit 3b8ab1d

Please sign in to comment.