پست‌ها

استفاده از Refresh Token جهت دریافت توکن‌های معتبر جدید (کانکت)

سلامی مجدد و با شکوه در صورتی که اعتبار access token موجودتان از بین بره و منقضی بشه، نیاز خواهید داشت که با استفاده از refresh token درخواست توکن‌های معتبر جدید بدید. فقط توجه کنید که refresh token هم می تونه اعتبارش رو از دست بده و منقضی بشه که دیگه کاری براش نمی شه کرد و فقط می شه کاربر رو دوباره از مراحل احراز هویت گذروند. ولی در صورتی که توکن معتبر داشته باشید می تونید درخواستتان را به این شکل به ریسورس مربوطه ارسال نمایید: POST https://connect.evand.com/api/oauth2/token { "grant_type": " refresh_token ", "client_id": "client_test", "client_secret": "test", "refresh_token": " XXXXX...... " } دیتاهایی که نیازه به این فیلد بفرستید به این شرح هستن: فیلد grant_type تعیین کننده، نوع درخواست توکن هست که اینجا برای رفرش کردن توکن ها نیازه مقدار refresh_token تعیین بشه. فیلدهای client_id و client_secret اطلاعات مربوط به کلاینت مربوطه است که جداگانه در اختیارشان قرار

تایید هویت و ورود مخصوص اپ‌های کانکت

سلام و درود بر دوستداران علم و ادب امروز قصد داریم نحوه ورود به اهراز هویت در اپ های کانکت را با هم مرور کنیم. دلیل اینکه به اپ های کانکت اشاره می شه اینه که با اپ دیسکاوری قاطی نشه. چون نحوه ورود و اهراز هویت برای اپ دیسکاوری متفاوت تر از اپ های کانکت که مختص هر برگزار کننده ساخته می شه خواهد بود. برای ورود به اپ تصمیم بر این شد که کاربر موبایل خود را وارد کرد، تایید کند، سپس وارد اپ شود. در نتیجه برای اهراز هویت نیاز به کد تاییده هست که به موبایل کاربر ارسال می‌شود. سپس با استفاده از کد دریافتی توسط کاربر، درخواست دیگری برای گرفتن توکن خواهیم داشت. درخواست و دریافت کد تاییدیه برای دریافت کد تاییدیه نیازه هست شماره موبایل کاربر به ریسورس ای ارسال شود تا اینکه کدی دارای اعتبار ۲ دقیقه ای ساخته و برای کاربر ارسال گردد. برای درخواست کد تاییدیه به این شکل عمل می کنیم: POST https://connect.evand.com/api/ mobile/verification-codes { " mobile ": "09XXXXXXXXX" } در صورت معتبر بودن شماره موبایل، کد تاییدیه ای برای کاربر ارسال خواهد

Event Widgets (description)

سلام یه ریسورس ای بود برای گرفتن ویجت های رویدادها بصورت مجزا از خود رویداد: GET https://api.evand.com/events/{EventSlug}/description {   "data": [     {       "title": "fsafewr",       "type": "description",       "description": "..."     },     {       "title": "werwer",       "type": "speakers",       "content": [         {           "name": "werwer"         }       ]     },     {       "title": "test",       "type": "organizers"     },     {       "content": "",       "title": "توضیحات تکمیلی",       "type": "description",       "description": "<p>این یک توضیحات تکمیلی است<\/p>"     }   ] } یه تغییری داده شده براش و اونم اینه که اگه اسلاگ رویداد

ریسورس دریافت اطلاعات رویداد با اسلاگ - نسخه ۲

سلام دلیل ایجاد این ریسورس با اینکه ریسورس ای برای گرفتن اطلاعات رویداد داشتیم، یه سر از ضعف های موجود در نسخه قبلی بود. در نسخه قبلی در صورتی که اسلاگ رویدادی عوض می شد، خطای ۴۰۴ می داده و اینکه اشاره به اسلاگ جدید می کرد که رویداد با آدرس جدید گرفته بشه. تفاوت نسخه جدید در اینه که بجای خطای ۴۰۴، کد ۳۰۱ به منظور انتقال ریسورس به آدرس جدید می ده و آدرس ریسورس جدید هم در هدر با Location تعیین می شه. در نسخه جدید، در اصل وقتی درخواستی به اسلاگ قدیمی رویداد زده بشه، بجای اینکه خطا بده، redirect می کنه به آدرس جدید. در اصل برنامه ها یا کتابخانه هایی که باهاشون برای ارسال درخواست استفاده می کنیم، معمولا خودشون این مسئله redirect رو هندل می کنن و برنامه نویس نیاز به درگیری خاصی نخواهد بود. مثل fetch که بروبچ خودمون برای دریافت اطلاعات استفاده می کنن که خودش این مسئله redirect رو هندل می کنه. اگرم کلاینت براش مهم باشه که آدرس جدید در مرورگر به کاربر نشان بده، می تونه اسلاگی که درخواست کرده بود رو با اسلاگ رویداد دریافتی مقایسه و در صورت مغایرت می تونه کاربر رو به آدرس جد

Seating

سلام سلام صد تا سلام سیستم صندلی به این شکل ترسیم شده که بچه های ایوندی یه سری سالن طراحی می کنن و به عنوان قالب نیازه ذخیره شه. در نهایت برای ساخت سالن برای هر رویداد، با استفاده قالب‌های ذخیره شده امکان ساخت سالن درخواستی فراهم می شه. که انتخاب و قالب سالن به انتخاب خود برگزار کننده می تونه انجام بپذیره. قالب سالن ساختار دیتای مربوط به قالب سالن ها کاملا توسط فرانت طراحی می شه و به عنوان JSON در اختیار api قرار داده می شه که ذخیره شه. یه اسمی هم روش گذاشته می شه. و API نظری روی ساختار دیتای قالب ها نداره و نخواهد داشت. قالب ها قابلیت انتشار دارند که در صورتی که قالبی ذخیره بشه و ناقص باشه، توسط برگزار کننده گان مشاهده نشه و تنها زمانی توسط برگزار کننده ها قابل رویت و استفاده باشن که قالب ها منتشر شده باشن. ساخت قالب برای ساخت قالب به این شکل عمل می کنیم: POST https://api.evand.com/seating/templates {     "title" : "this is a title",     "data" : {     ANY_VALID_JSON     },     “published” : “false” } که بجای  ANY_VALID_J

لیست دسترسی به بخش ها برای ادمین پنل

سلام بر مهدی جون پدر، یاشام رو نیاوردی زیارت کنیم ها :( یادت باشه. یکی از ایده های پشت ( پرده ) ادمین پنل جدید این بود که هر بخش سطح دسترسی های خود را داشته باشه و فقط افرادی که دسترسی داشته باشن بتونن استفاده کرده و لذتش را ببرن. آنهایی هم که دسترسی ندارن، حسرتش را بر دل خویش، احساس خواهند کرد :( (شکلک زندگی چقدر بی رحمه) ریسورسی برای این منظور طراحی و ساخته شده که تنها کارش اینه که یه لیستی از بخش های که ادمین بهش دسترسی داره رو لیست کنه. برای استفاده از این ریسورس نیازه JWT توکن داشته باشیم و دسترسی ادمین هم نیازه داشته باشیم. یعنی یه ادمین ایوندی می تونه به این ریسورس دسترسی داشته باشه. در نتیجه ازطریق هدر نیازه توکن مربوطه نیز ارسال گردد: Headers: Authorization: Bearer ... برای دریافت لیست، به این شکل عمل می کنیم: GET https://api.evand.com/admin-panel/accessible-sections [   "advertising_campaigns" ] خروجی مربوطه یه آرایه از بخش هایی که کاربر بهش دسترسی داره هست. خیلی شیک و ساده. مهدی جون خدافظ :(

رویدادهای موضوعات مورد علاقه کاربر

?سلام در صفحه اول ایوند نیازه بوده که رویدادهای مربوط به موضوعاتی که کاربر علاقمند هست نمایش داده شود. از آنجایی هم که ریسورس ای برای این منظور در دست نبود، فرانت برای این منظور از ریسورس های مختلفی برای این کار استفاده می کرد که لیست موضوعات رو پیدا کنه، و برای هر موضوع درخواستی به لیست رویدادهای بزنه و رویدادهای موضوعات رو در بیاره که البته درش خطایی هم هست. درخواست هایی می خوره که نتایجی به همراه نخواهد بود. و البته ترتیب دیتاها هم به راحتی توسط فرانت قابل انجام نبود. این ریسورس برای اینکه که لیستی از موضوعات ای که کاربر بهش علاقمند هست به همراه ۴ تن از رویداد مربوط به موضوع مورد نظر رو در دسترس کلاینت قراره بده. ترتیب موضوعات هم بر اساس بیشترین فروشش چیده شده. برای دریافت لیست موضوعات و رویدادهای بدین شکل عمل می کنیم: GET https://api.evand.com/followed-categories/events {   "data": [     {       "category_id": 1,       "category_title": "کارآفرینی",       "category_slug": "کارآفرینی",