Skip to content

Commit

Permalink
Update oauth (#39)
Browse files Browse the repository at this point in the history
* Update oauth

* Update ReadMe.md

---------

Co-authored-by: Daniyal-Mackey <[email protected]>
Co-authored-by: Saeed Alipoor <[email protected]>
  • Loading branch information
3 people authored May 26, 2024
1 parent 9d2283b commit 33a86e5
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 50 deletions.
18 changes: 10 additions & 8 deletions ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,14 +167,14 @@
| /finder/post/{{token}} | GET | دریافت اطلاعات یک آگهی | GET_POST | - |
| /finder/user-posts | POST | دریافت آگهی‌های یک کاربر | GET_USER_POSTS | USER_POSTS_GET |
| /finder/posts | POST | جستجوی آگهی بر اساس شهر و محله، دسته، کلیدواژه | SEARCH_POST | - |
| /users | POST | دریافت اطلاعات تماس یک کاربر | USER_RETRIEVE | USER_RETRIEVE |
| /users | POST | دریافت اطلاعات تماس یک کاربر | USER_RETRIEVE | USER_PHONE |
| /addons/user/{{phone}} | POST | درج افزونه برای همهٔ آگهی‌های یک کاربر | USER_ADDON_CREATE | USER_ADDON_CREATE |
| /addons/user/{{id}} | DELETE | حذف یک افزونهٔ درج شده از همهٔ آگهی‌های یک کاربر | USER_ADDON_CREATE | USER_ADDON_CREATE |
| /verifications/user/{{phone}} | POST | درج اطلاعات احراز به یک کاربر | USER_VERIFICATION_CREATE | USER_VERIFICATION_CREATE |
| /verifications/user/{{phone}} | DELETE | حذف اطلاعات احراز درج شده برای یک کاربر | USER_VERIFICATION_CREATE | USER_VERIFICATION_CREATE |
| /payment-ticket/validate | POST | بررسی معتبر بودن تیکت پرداخت | - | - |
| /chat/conversation | POST | ارسال پیام در یک چت | CHAT_SEND_MESSAGE_OAUTH | CHAT_SEND_MESSAGE_OAUTH |
| /chat/conversation-messages?user_id={{user_id}}&peer_id={{peer_id}}&post | POST | دریافت پیام‌های یک چت | CHAT_READ_CONVERSATION | CHAT_READ_CONVERSATION |
| /chat/conversation | POST | ارسال پیام در یک چت | CHAT_SEND_MESSAGE_OAUTH | CHAT_MESSAGE_SEND |
| /chat/conversation-messages?user_id={{user_id}}&peer_id={{peer_id}}&post | POST | دریافت پیام‌های یک چت | CHAT_READ_CONVERSATION | CHAT_CONVERSATION_READ |
| /assets/category | GET | فهرست دسته‌ها | - | - |
| /assets/city | GET | فهرست شهرها | - | - |
| /assets/district/{{city}} | GET | فهرست همهٔ محله‌ها یا محله‌های یک شهر با تنظیم شهر در آدرس | - | - |
Expand All @@ -189,13 +189,13 @@
# احراز باز
برای ارسال درخواست‌هایی که نیاز به دریافت مجوز از کاربر دارد از OAuth استفاده کنید. فرایند در یافت کلید دسترسی را در ادامه می‌بینید. جزییات اسکو‌پ‌های دسترسی را در مستندات هر درخواست و همچنین صفحهٔ اسکوپ‌ها می‌توانید ببینید
### گام اول (درخواست اجازه از کاربر)
`Redirect https://open-platform-redirect.divar.ir/oauth`
`Redirect https://api.divar.ir/oauth2/auth`
| نام پارامتر | مقدار | توضیحات |
|-----------------|------------|------------|
| response_type | code | مقدار بازگشتی بعد از ریدایرکت کاربر از صفحهٔ احراز باز دیوار به صفحهٔ شما که در پارامتر `redirect_uri` مشخص می‌کنید |
| client_id | <app-slug> | نام یکتای برنامهٔ شما که در قسمت مدیریت برنامه‌ٔ پنل کنار دیوار می‌توانید ببینید |
| redirect_uri | <url> | آدرسی از برنامهٔ شما که کاربر بعد از صدور (یا رد) اجازه‌های درخواستی به آن هدایت شود. (این آدرس باید URL encoded باشد، در فهرست آدرس‌های مجاز برنامهٔ شما در پنل کنار ثبت شده‌باشد و هیچ پارامتری در آن نباشد.) |
| scope | <scope> | جازه‌های مورد نیاز برای دریافت از کاربر که با + از هم جدا شدند. |
| scope | <scope> | جازه‌های مورد نیاز برای دریافت از کاربر که با اسپیس (‍‍`" "`) از هم جدا شدند. |
| state | <state> | ک مقدار دلخواه که در بازگشت کاربر به اپلیکیشن شما مجدد در پارامترهای URL قرار می‌گیرد. |
### گام دوم (بازگشت به برنامهٔ شما)
کاربر به آدرس `redirect_uri` که در گام اول مشخص کردید با پارامترهای زیر ریدایرکت می‌شود.
Expand All @@ -205,20 +205,22 @@
| state | <state> | مقداری که در پارامتر `state` در بخش قبل قرار دادید را عیناً این قسمت دریافت می‌کنید. |
### گام سوم (دریافت توکن)
در صورت موافقت کاربر و دریافت `code` در هنگام بازگشت به برنامه، می‌توانید با درخواست زیر `access token` دریافت کنید.
دقت شود در این درخواست هدر `Content-Type` حتما باید `application/x-www-form-urlencoded` باشد.
```http request
POST https://api.divar.ir/v1/open-platform/oauth/access_token
POST https://api.divar.ir/oauth2/token
{
"code": "c87sDtaqmWwgis7dYyukMqy6KAArNUFkukAPW8O90GmiEJkdmSTWH4KjSkNUP6FZ",
"client_id": "{{app_slug}}",
"client_secret": "{{api_key}}",
"client_secret": "{{client_secret}}",
"grant_type": "authorization_code",
"redirect_uri": "your redirect_uri"
}
```
| نام پارامتر | مقدار | توضیحات |
|-----------|---------|---------------|
| code | code | اگر کاربر با درخواست اجازهٔ شما موافقت کرده‌باشد، این مقدار را خواهید داشت. در غیر این صورت می‌توانید خطای متناسب به کاربر نمایش دهید.|
| state | <state> | مقداری که در پارامتر `state` در بخش قبل قرار دادید را عیناً این قسمت دریافت می‌کنید. |
| redirect_uri | <redirect_uri> | با همان مقداری که برای ریکوئست اول (گرفتن کد در گام اول) قرار داده شده است پر شود. |
## دریافت اطلاعات یک آگهی

# دسترسی سریع
Expand Down
2 changes: 1 addition & 1 deletion addons/approved_addon.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
| CREATE APPROVED ADDON | |
|-----------------------|---------------------|
| API Permissions | ADD_ON_CREATE |
| OAuth Permissions | ADDON_USER_APPROVED |
| OAuth Permissions | POST_ADDON_CREATE |
| Resource ID | post_token |

```http request
Expand Down
7 changes: 3 additions & 4 deletions chat/send_message.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@
## دسترسی ارسال پیام در چت

برای اینکه بتوانید در یک چت پیامی ارسال کنید، نیاز است تا اجازهٔ دسترسی در سه نقطه فراهم شده‌باشد:\
برای اینکه بتوانید در یک چت پیامی ارسال کنید، نیاز است تا اجازهٔ دسترسی در دو نقطه فراهم شده‌باشد:\
۱. برنامهٔ شما به صورت کلی دسترسی `CHAT_SEND_MESSAGE_OAUTH` را در [پنل کنار دیوار][پنل کنار] گرفته‌باشد.\
۲. [کلید API][API key] موجود در درخواست، دسترسی `CHAT_SEND_MESSAGE_OAUTH` را داشته‌باشد.\
۳. [از کاربر اجازه گرفته‌باشید][احراز باز] و `access_token` ارسالی در درخواستتان این اجازه را داشته‌باشد.
۲. [از کاربر اجازه گرفته‌باشید][احراز باز] و `access_token` ارسالی در درخواستتان این اجازه را داشته‌باشد.

دو نوع دسترسی برای ارسال پیام در چت وجود دارد که برای هر کدام می‌توان جداگانه از کاربر اجازه گرفت. ارسال پیام در **یک چت** و ارسال پیام در **چت‌های یک آگهی**
جزییات و پارامترهای لازم برای درخواست دسترسی و ایجاد `access_token` را در [صفحهٔ احراز باز][احراز باز] ببینید.
Expand Down Expand Up @@ -97,7 +96,7 @@ x-access-token: {{access_token}}
"post_token": "توکن آگهی",
"user_id": "شناسهٔ کسی که روی لینک کلیک کرده یا فرایند را شروع کرده",
"peer_id": "شناسهٔ طرف مقابل چت",
"Supplier": {
"supplier": {
"id": "شناسهٔ کاربر فروشنده (صاحب آگهی)"
},
"demand": {
Expand Down
1 change: 1 addition & 0 deletions finder/get_user_posts.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
|-------------------|----------------|
| API Permissions | GET_USER_POSTS |
| OAuth Permissions | USER_POSTS_GET |
| Resource ID | USER_POSTS_GET |

با استفاده از access_token می توانید آگهی‌های کاربر احراز شده را دریافت کنید. کافیست رکوئست زیر را بزنید.
```http request
Expand Down
Loading

0 comments on commit 33a86e5

Please sign in to comment.