مهاجرت افزونه
در این داکیومنت تمام مراحل مورد نیاز برای مهاجرت:
- از user addon v1 به user addon v2
- از post addon v1 به post addon v2
- از user verification به user semantic
توجه داشته باشید که
APIهای قدیمی در لحظه maintain میشوند ولی پیشنهاد میشود تا قبل از اعلامDEPRECATIONآن ها، مهاجرت را انجام دهید.
Post Addon V2
- در ابتدا
endpointرا بهhttps://open-api.divar.ir/v2/open-platform/addons/post/{{token}}تغییر دهید. - فیلد
widgetsدر رکوئست قبلا به شکلwidgets:{"widget_list":[]}بود که در حالت جدید به شکلwidgets:[]درآمده است. پس محتویاتwidget_listرا درwidgetsقرار دهید و آن را لیست/آرایه بکنید. - خود ویجت های دیوار نیز تغییر کرده اند. در این ورژن این ویجت ها ساده تر و خواناتر شده اند. طبق این قسمت تک تک ویجت هارا تغییر دهید.
- فیلد
semanticمانند قبل یکobjectاست که value های استرینگی دارد منتهی فیلدsemantic_sensitivesبه طور کامل حذف شده است، هر فیلدی که در اینجا تعیین نشده باشد رمز میشود. برای اضافه کردن فیلد با تیم دیواری مربوطه در ارتباط باشید. پسsensitive_semanticsرا حذف کنید و طبق اینجا فیلد های مورد نظر خود را قرار دهید.
-POST https://open-api.divar.ir/v1/open-platform/add-ons/post/{{post_token}}
+POST https://open-api.divar.ir/v2/open-platform/addons/post/{{post_token}}
Content-Type: application/json
x-api-key: {{apikey}}
Authorization: Bearer {{access_token}}
{
- "widgets": {
+ "widgets": [
- "widget_list": [
{
- "widget_type": "TITLE_ROW",
- "data": {
+ "title_row": {
- "@type": "type.googleapis.com/widgets.TitleRowData",
"text": "این یک تایتل رو هست",
"has_divider": true
}
}
- ]
- }
+ ]
"semantic": {
- "year": "1398",
- "usage": "100000"
+ "payment_method": "SECURE",
+ "some-key": "some value to be hashed"
},
- "semantic_sensitives": [],
"notes": "any notes you want to get back on list api"
}
User Addon V2
- در ابتدا
endpointرا بهhttps://open-api.divar.ir/v2/open-platform/addons/user/{{phone}}تغییر دهید. - فیلد
widgetsدر رکوئست قبلا به شکلwidgets:{"widget_list":[]}بود که در حالت جدید به شکلwidgets:[]درآمده است. پس محتویاتwidget_listرا درwidgetsقرار دهید و آن را لیست/آرایه بکنید. - خود ویجت های دیوار نیز تغییر کرده اند. در این ورژن این ویجت ها ساده تر و خواناتر شده اند. طبق این قسمت تک تک ویجت هارا تغییر دهید.
- فیلد
semanticمانند قبل یکobjectاست که value های استرینگی دارد منتهی فیلدsemantic_sensitivesبه طور کامل حذف شده است، هر فیلدی که در اینجا تعیین نشده باشد رمز میشود. برای اضافه کردن فیلد با تیم دیواری مربوطه در ارتباط باشید. سپسsensitive_semanticsرا حذف کنید و طبق اینجا فیلد های مورد نظر خود را قرار دهید. - فیلد های
phone, notes, management_permalinkرا ازbodyنیز حذف کنید. - فیلد
verification_costرا بهcostتغییر نام دهید.
-POST https://open-api.divar.ir/v1/open-platform/addons/user/{{phone}}
+POST https://open-api.divar.ir/v2/open-platform/addons/user/{{phone}}
Authorization: Bearer {{access-token}}
x-api-key: {{api-key}}
{
- "widgets": {
+ "widgets": [
- "widget_list": [
{
- "widget_type": "SCORE_ROW",
- "data": {
+ "score_row": {
- "@type": "type.googleapis.com/widgets.ScoreRowData",
"title": "فنی",
"percentage_score": 80,
"score_color": "SUCCESS_PRIMARY",
"hasDivider": true,
- "icon": {
"icon_name": "HISTORY",
- "icon_color": "SUCCESS_PRIMARY"
- },
"action": {
- "type": "LOAD_WEB_VIEW_PAGE",
- "fallback_link": "https://google.com/",
- "payload": {
- "@type": "type.googleapis.com/widgets.LoadWebViewPagePayload",
- "url": "https://google.com/"
- }
+ "open_direct_link": "https://google.com"
}
}
}
- ]
- },
+ ],
- "notes": "test note",
- "phone": "09991234567",
"categories": [],
- "management_permalink": "https://same-domain.com/manage/id",
"ticket_uuid": "812d56e6-e44d-45e7-8932-f9acbd416999",
- "verification_cost": 124000,
+ "cost": 124000,
"semantic": {
- "national_id": "0023456789",
- "full_name": "علی علوی",
- "external_reference": "ref-id",
"identity_verification_result": "FACE_AND_ID_MATCHED"
},
- "semantic_sensitives": ["national_id"]
}
User Semantic
ساخت
- در ابتدا برای دریافت اجازه USER_SEMANTIC_CREATE بر روی اپتان بر روی پنل کنار تیکت ثبت کنید.
- در ادامه
endpointرا بهhttps://open-api.divar.ir/v1/open-platform/semantic/user/{{phone}}تغییر دهید. - فیلد
semanticمانند قبل یکobjectاست که value های استرینگی دارد منتهی فیلدsemantic_sensitivesبه طور کامل حذف شده است، هر فیلدی که در اینجا تعیین نشده باشد رمز میشود. برای اضافه کردن فیلد با تیم دیواری مربوطه در ارتباط باشید. سپسsensitive_semanticsرا حذف کنید و طبق اینجا فیلد های مورد نظر خود را قرار دهید. - فیلد های
phone, notesرا از بادی ریکوئست حدف کنید.
-POST https://open-api.divar.ir/v1/open-platform/verifications/user/{{phone}}
+POST https://open-api.divar.ir/v1/open-platform/semantic/user/{{phone}}
Authorization: Bearer {{access-token}}
x-api-key: {{api-key}}
{
- "notes": "test note",
- "phone": "09120000000",
"semantic": {
"national-id": "12345678",
"identity_verification_result": "FACE_AND_ID_MATCHED"
},
- "semantic_sensitives": ["national-id"],
"ticket_uuid": "812d56e6-e44d-45e7-8932-f9acbd416999",
- "verification_cost": 12000
+ "cost": 12000
}
- با توجه به اینکه
national-idفیلد از پیش تعیین شده نمیباشد، محتویات این فیلد به طور کامل رمز و چکیده شده و تیم های داخل دیوار چیزی از این فیلد متوجه نخواهند شد.- در صورتی که از سیستم قبلی، یعنی
user verificationبه این سیستم مهاجرت میکنید و فیلد مورد نظرنان در فیلد های از پیش تعیین شده نیست با تیم مربوط در دیوار در ارتباط باشید. همچنین میتوانید با ثبت تیکت نیاز خود را بیان کنید.
حذف
- در ابتدا برای دریافت اجازه USER_SEMANTIC_DELETE بر روی اپتان بر روی پنل کنار تیکت ثبت کنید.
- در ادامه
endpointرا بهhttps://open-api.divar.ir/v1/open-platform/semantic/user/{{phone}}تغییر دهید.
-DELETE https://open-api.divar.ir/v1/open-platform/verifications/user/{{phone}}
+DELETE https://open-api.divar.ir/v1/open-platform/semantic/user/{{phone}}
x-api-key: {{api-key}}
New Widgets
در تمامی ویجت ها @type و widget_type را حذف کنید. نام فیلد data را با نام ویجت جایگزین کنید. به طور مثال:
{
- "widget_type": "TITLE_ROW",
- "data": {
+ "title_row": {
- "@type": "type.googleapis.com/widgets.TitleRowData",
"text": "این یک تایتل رو هست",
"has_divider": true
}
}
حالا مراحل مهاجرت هرکدام از ویجت های قدیمی به جدید را بررسی میکنیم:
- ویحت TITLE_ROW
- فیلد های
@typeوwidget_typeرا حذف کنید. - نام فیلد
dataرا باtitle_rowجایگزین کنید.
- فیلد های
{
- "widget_type": "TITLE_ROW",
- "data": {
+ "title_row": {
- "@type": "type.googleapis.com/widgets.TitleRowData",
"text": "این یک تایتل رو هست",
"has_divider": true
}
}
- ویحت SUBTITLE_ROW
- فیلد های
@typeوwidget_typeرا حذف کنید. - نام فیلد
dataرا باsubtitleجایگزین کنید.
- فیلد های
{
- "widget_type": "SUBTITLE_ROW",
- "data": {
+ "subtitle_row": {
- "@type": "type.googleapis.com/widgets.SubtitleRowData",
"text": "این یک سابتایتل رو هست",
"has_divider": true
}
}
- ویحت WIDE_BUTTON_BAR
- فیلد های
@typeوwidget_typeرا حذف کنید. - نام فیلد
dataرا باbutton_barجایگزین کنید. - فیلدهای داخل فیلد
buttonرا بیرون بیاورید و درbutton_barقرار دهید. - فیلد
styleرا حذف کنید. - فیلد
actionرا طبق این قسمت مهاجرت دهید.
- فیلد های
{
- "widget_type": "WIDE_BUTTON_BAR",
- "data": {
+ "button_bar": {
- "@type": "type.googleapis.com/widgets.WideButtonBarWidgetData",
- "style": "SECONDARY",
- "button": {
"action": {
- "type": "OPEN_WEB_PAGE",
- "fallback_link": "https://your.website.ir",
- "payload": {
- "@type": "type.googleapis.com/widgets.OpenWebPagePayload",
- "link": "https://your.website.ir"
- }
+ "open_direct_link": "https://your.website.ir"
},
"title": "به سمت کارشناسی ماشین",
}
}
}
- ویحت SELECTOR_ROW
- فیلد های
@typeوwidget_typeرا حذف کنید. - نام فیلد
dataرا باselector_rowجایگزین کنید. - فیلد های
style, small, has_arrow, description, notification_textرا حذف کنید. - فیلد
icon_nameرا ازiconخارج کنید و فیلدiconرا حذف کنید. - نام فیلد
image_urlرا بهimage_idتغییر دهید. - فیلد
actionرا طبق این قسمت مهاجرت دهید.
- فیلد های
{
- "widget_type": "SELECTOR_ROW",
- "data": {
+ "selector_row": {
- "@type": "type.googleapis.com/widgets.SelectorRowData",
"title": "این یک سلکتور رو هست",
- "image_url": "someuuid.jpg",
+ "image_id" "someuuid.jpg",
"has_divider": false,
- "has_notification": true,
- "icon": {
"icon_name": "ADD",
- },
- "notification_text": "",
- "description": "نوتیفیکیشن",
- "has_arrow": true,
- "small": true,
"action": {
- "type": "LOAD_WEB_VIEW_PAGE",
- "fallback_link": "https://your.website.com",
- "payload": {
- "@type": "type.googleapis.com/widgets.LoadWebViewPagePayload",
- "url": "https://your.website.com"
- }
+ "open_direct_link": "https://your.website.ir"
}
}
}
- ویحت SCORE_ROW
- فیلد های
@typeوwidget_typeرا حذف کنید. - نام فیلد
dataرا باscore_rowجایگزین کنید. - فیلد
icon_nameرا ازiconخارج کنید و فیلدiconرا حذف کنید. - فیلد
actionرا طبق این قسمت مهاجرت دهید.
- فیلد های
{
- "widget_type": "SCORE_ROW",
- "data": {
+ "score_row": {
- "@type": "type.googleapis.com/widgets.ScoreRowData",
"title": "متن تایتل",
"percentage_score": 80,
"score_color": "SUCCESS_PRIMARY",
"hasDivider": true,
- "icon": {
"icon_name": "HISTORY",
- },
"action": {
- "type": "LOAD_WEB_VIEW_PAGE",
- "fallback_link": "https://google.com/",
- "payload": {
- "@type": "type.googleapis.com/widgets.LoadWebViewPagePayload",
- "url": "https://google.com/"
- }
+ "open_direct_link": "https://google.com/"
}
}
}
- ویحت IMAGE_CAROUSEL_ROW
- فیلد های
@typeوwidget_typeرا حذف کنید. - نام فیلد
dataرا باimage_carousel_rowجایگزین کنید. - نام فیلد
image_urlرا بهimage_idتغییر دهید.
- فیلد های
{
- "widget_type": "IMAGE_CAROUSEL_ROW",
- "data": {
+ "image_carousel_row": {
- "@type": "type.googleapis.com/widgets.ImageCarouselRowData",
"items": [
{
- "image_url": "e7172fc8-2a9c-43c7-927d-93ac7477eb06.jpg",
+ "image_id": "e7172fc8-2a9c-43c7-927d-93ac7477eb06.jpg",
"description": "1"
},
{
- "image_url": "979b9755-7b73-4adc-b209-7905300390ba.jpg",
+ "image_id": "979b9755-7b73-4adc-b209-7905300390ba.jpg",
"description": "2"
},
{
- "image_url": "logo",
+ "image_id": "logo",
"description": "3"
}
],
"has_divider": true
}
}
- ویحت GROUP_INFO_ROW
- فیلد های
@typeوwidget_typeرا حذف کنید. - نام فیلد
dataرا باgroup_info_rowجایگزین کنید.
- فیلد های
{
- "widget_type": "GROUP_INFO_ROW",
- "data": {
+ "group_info_row": {
- "@type": "type.googleapis.com/widgets.GroupInfoRow",
"items": [
{
"title": "متن اول",
"value": "مقدار اول"
},
{
"title": "متن دوم",
"value": "مقدار دوم"
},
{
"title": "متن سوم",
"value": "مقدار سوم"
}
],
"has_divider": true
}
}
- ویحت EVENT_ROW
- فیلد های
@typeوwidget_typeرا حذف کنید. - نام فیلد
dataرا باevent_rowجایگزین کنید. - فیلد های
padded, icon_colorرا حذف کنید. - فیلد
icon_nameرا ازiconخارج کنید و فیلدiconرا حذف کنید. - نام فیلد
image_urlرا بهimage_idتغییر دهید.
- فیلد های
{
- "widget_type": "EVENT_ROW",
- "data": {
+ "event_row": {
- "@type": "type.googleapis.com/widgets.EventRowData",
"title": "کیفیت کارشناسی",
"subtitle": "با ۱ سال گارانتی قیمت",
"label": "تضمینی",
- "image_url": "e7172fc8-2a9c-43c7-927d-93ac7477eb06.jpg",
+ "image_id": "e7172fc8-2a9c-43c7-927d-93ac7477eb06.jpg",
- "padded": true,
- "icon": {
"icon_name": "CAR_HYDRAULICS",
- "icon_color": "WARNING_SECONDARY"
- }
}
}
- ویحت EVALUATION_ROW
- فیلد های
@typeوwidget_typeرا حذف کنید. - نام فیلد
dataرا باevaluation_rowجایگزین کنید. - فیلد های
text_color, indicator_color, icon_color, image_url_light, image_url_darkرا حذف کنید. - فیلد
icon_nameرا ازindicator_iconخارج کنید و فیلدindicator_iconرا حذف کنید.
- فیلد های
{
- "widget_type": "EVALUATION_ROW",
- "data": {
+ "evaluation_row": {
- "@type": "type.googleapis.com/widgets.EvaluationRowData",
"indicator_text": "متن روی شاخص",
"indicator_percentage": 50,
- "indicator_icon": {
- "image_url_dark": "",
- "image_url_light": "",
"icon_name": "ADD",
- "icon_color": "BRAND_PRIMARY"
- },
- "indicator_color": "BRAND_PRIMARY",
"left": {
"text": "left text",
- "text_color": "ICON_PRIMARY",
"section_color": "ICON_SECONDARY"
},
"middle": {
"text": "middle text",
- "text_color": "ICON_PRIMARY",
"section_color": "ICON_SECONDARY"
},
"right": {
"text": "right text",
- "text_color": "ICON_PRIMARY",
"section_color": "ICON_SECONDARY"
}
}
}
- ویحت DESCRIPTION_ROW
- فیلد های
@typeوwidget_typeرا حذف کنید. - نام فیلد
dataرا باdescription_rowجایگزین کنید. - فیلد های
is_primary, small, paddedرا حذف کنید.
- فیلد های
{
- "widget_type": "DESCRIPTION_ROW",
- "data": {
+ "description_row": {
- "@type": "type.googleapis.com/widgets.DescriptionRowData",
"text": "این یک دسکریپشن رو هست",
"has_divider": false,
- "is_primary": false,
"expandable": false,
- "small": true,
- "padded": false
}
}
New Actions
در ویجت های جدید اکشنها با اکشن های API جدید چت یکپارچه شد. به طور خلاصه برای مهاجرت کافی است که لینکی که میخواستید کاربر به آن هدایت شود را در کف action، در فیلد open_direct_link قرار دهید به شکل زیر:
"action": {
- "type": "OPEN_WEB_PAGE",
- "fallback_link": "https://your.website.ir",
- "payload": {
- "@type": "type.googleapis.com/widgets.OpenWebPagePayload",
- "link": "https://your.website.ir"
- }
+ "open_direct_link": "https://your.website.ir"
}
اکشن های جدیدی به ویجت های کنار دیوار اضافه شده است که از اینجا میتوانید آنها را مشاهده کنید.