پست‌ها

پایان

این داستان ادامه ندارد!

بلیت خریداری شده کاربر در رویداد

برای ورود و استفاده از سرویس کانکت، نیاز به تهیه بلیت ای از رویداد مد نظر هست. از این رو، کلاینت ها جهت بهبود و تسریع فرایند ورود نیاز به دانستن این دارن که بدونن آیا کاربر مربوطه بلیت ای از رویداد مد نظر تهیه کرده است یا خیر! در اصل بلیت های خریداری شده از ریسورس هایی در دسترس است ولی نیاز به جست و جو و فرایند هایی بسیار دشوار و طاقت فرسایی برای کلاینت ها پیش رو دارد که هر انسانی رو به گریه و زاری وا می دارد. هدف از این تسک تسهیل این امر می باشد. هدفی که در نهایت باعث شادی و خرسندی بچه های کلاینت می شود. بچه های دوست داشتنی، بچه های قوقول مقولی و نی ناش ناش. راه حل ارائه شده بدین شکل است که در صورتی که کاربر (نه مهمان) باعث بارگزاری دیتاهای مربوط به رویدادی شود (GET /events/SLUG) در بتن اطلاعات رویداد، لینکی به بلیت خریداری شده کاربر خواهد بود. این لینک در صورتی که کاربری بلیت ای از رویداد مد نظر تهیه نکرده باشد، مقداری نخواهد داشت و برابر null خواهد بود. GET https://api.evand.com/events/SLUG و خروجی بدین شکل خواهد بود: {   "data": {     ...

ظرفیت بلیت رویداد

سلام بچه‌ها از ویروس چه خبر؟ سلام می رسونه؟ آپدیت اول: جهت اطلاع اط تغییرات مربوطه به انتهای همین صفحه و آپدیت اول مراجعه نمایید! توضیح اجمالی مسئله ای که وجود داشت و نیاز به حلش بود، تغییر مقدار ظرفیت بلیت ها بود. در اصل فیلدی داشتیم به اسم available_count که توسط برگزار کننده در پنل رویداد به یک عددی تعیین می شه. این عدد خوشگل ما بخاطر رزرو و خرید بلیت، کم و زیاد می شه که باعث گمراهی برگزار کننده و حتی پیچیده تر شدن سیستم می کنه که برای تحلیل دیتا هم اذیت کننده می تونه باشه. از این فیلد available_count در صفحه خرید بلیت، جهت نشان دادن تعداد بلیت باقی مانده و یا اطلاع از اتمام موجودی بلیت نیز، استفاده می شود. تغییراتی در سیستم صورت گرفته که این مسئله رو حل کنه. تغییرات کلی بدین شکل است که فیلد جدیدی به اسم availability_count به ریسورس بلیت اضافه شده است. وظیفه این فیلد، نشان دادن تعداد بلیت موجود با در برگرفتن تعداد بلیت های فروش رفته و تعداد بلیت های رزر شده می باشد. در نتیجه برای صفحه خرید بلیت، نیاز است از فیلد جدید availability_count استفاده شود که ...

تایید شماره موبایل پروفایل کاربر ایوند

سلام و صدها سلامی دیگر تاریخچه در حال حاضر که این متن آماده می شه روش تایید شماره موبایل پروفایل کاربر در ایوند به شیوه ای انجام می شه که یه توضیح ای در موردش می دیم و اینکه در آینده ای نزدیک قرار به حذف شدنش خواهد بود و تنها راه برای تایید به شیوه جدید که به زودی به بررسیش خواهیم رسید. شیوه قدیمی برای تایید شماره موبایل پروفایل بدین شکل است که درخواستی به ریسورس  POST https://api.evand.com/users/USER_ID/verifyMobile ارسال می شه که باعث ارسال کدی ۵ یا ۶ به شماره موبایل ای که همراه درخواست فوق ارسال می شه، می شده است. سپس برای تایید شماره موبایل مربوطه درخواست دیگری به ریسورس  GET https://api.evand.com/auth/confirmMobile/5_OR_6_DIGIT_VERIFICTION_CODE جهت تایید شماره موبایل ذخیره شده در پروفایل کاربری ارسال می شد. یه سری نکاتی در رابطه با این شیوه قدیم وجود داره که بهتره یه اشاره ای بهشون بشه: نکته اول اینه که برای درخواست اولی نیاز به آی دی کاربر بود، با اینکه هدر مربوطه جهت اهراز هویت ارسال می شد. این مسئله در ریسورس جدید حل شده و نیازی به ارسال آ...

شرکت کننده گان غایب

سلام قبل از پرسش سوالات نظرسنجی از شرکت کننده گان، نیاز بر این است که بدانیم آیا اصلا شرکت کننده مربوطه تو رویداد شرکت کرده بود که سوالات رو ازش بپرسیم یا خیر. برای این منظور ریسورس جدایی از سوالات نظرسنجی طراحی شده و تنها کاربردش دریافت اطلاعات مربوط به شرکت کننده غایب می باشد. در صورت حاضر بودن شرکت کننده در رویداد، این ریسورس کاربردی ندارد و می شه سوالات نظرسنجی رو مطرح کرد و پاسخ شان را جداگانه از ریسورس مربوط به خودش ثبت کرد. خروجی شرکت کننده گان غایب داخل فایل اکسل ای که پاسخ سوالات نظرسنجی درش قرار می گیره، خواهد بود. ثبت غیبت شرکت کننده برای اطلاع سیستم از غیبت شرکت کننده درخواستی بدین منظور ارسال می کنیم: PUT https://api.evand.com/events/ EVENT_SLUG /absentees/ TICKET_CODE پارامترهای ریسورس اولی  EVENT_SLUG هست که نیازه اسلاگ رویداد مربوطه رو جایگزینش کنید. دومی  TICKET_CODE هست که کد بلیت شرکت کننده رو نیازه درش قرار بدید. همین. در صورت موفقیت آمیز بودن عملیات از کد وضعیت ۲۰۰ و فک و فامیلاش استفاده می شود. غیبت کاربر یک ب...

لیست رویدادها

سلام و درد اینجا جای خالی توضیحات مربوط به ریسورس رویدادها می باشد. لطفا اینجا را خودتان با کلمات مناسب پر نمایید. نوع منبع رویدادها نیاز بر این بوده که نوع رویدادهایی که از طریق ریسورس رویدادها ارائه می شه رو تعیین نماییم. در اصل جدیدا در ریسورس رویدادها، سورت رویدادهای ویژه کاربران، ابتدا رویدادهای ویژه قرار می گیرد. سپس رویدادهای ترند شده قرار می گیرد. نیاز بر تشخیص منبع این دو نوع رویداد بوده می باشد. برای این منظور ۲ فیلد به اطلاعات مربوط به رویدادها افزوده شده است: Is_user_special_event is_trended_event مقدار این دو فیلد بصورت boolean خواهد بود. توجه نمایید برای اینکه این دو فیلد نمایان شوند، نیاز است تمام فیلدهای مربوط به رویدادها رو دریافت کنید و فیلدهای رویدادها رو محدود به چند تا از طریق کوئری پارامتر fields نکنید. کاربرد این دو فیلد در دو بخش از ریسورس رویدادها خواهد بود. اولی هنگامی که رویدادهای ویژه کاربران رو دریافت می کنید (سورت user-special-events ) که در این صورت رویدادهای اولی معمولا رویدادهای ویژه کاربر می باشد که در...

برگزار کننده های رویداد در کانکت

شروع این تسک با هدف افزودن قابلیت دسترسی برگزار کننده گان رویداد به کانکت بود. افزودن برگزار کننده جدید به رویداد (سیستم به سیستم) برای این منظور نیازه که درخواستی به سمت سرویس کانکت ارسال نمایید: POST https://connect.evand.com/api/ gateways/organizers Headers: Content-Type: application/json Authorization: Bearer TOKEN { " mobile ": "+989140000000", " event_id ": 1, "name": "Hamidreza", "surname": "shhadana" } از دیتاهای فوقی که نیازه به ریسورس مربوطه ارسال شوند، مقادیر mobile و event_id اجباری می باشد. در صورتی که مقادیر این دو فیلد ارسال نشه و یا اشتباه باشه، با خطاهای خیلی ۵۰۰ روبرو خواهیم شد.از آنجایی که برای خودمون می نویسیم و سیستم به سیستم قراره استفاده بشه، وقت بیشتری برای ولیدیشن نزاشتم. برای همین خطای ۵۰۰ می گیریم. در صورت نیاز می شه ولیدیشن مناسبی به ریسورس مربوطه افزود. مقدار فیلد mobile نیاز است که string باشه. مقدار فیلد event_id نیاز است که integer باشه. ...

Event Progress bar

بله، قضیه از این قرار است! قصه ای که امشب قراره براتون تعریف کنم، از نحوه کارکرد progress bar در رویدادهامون هست. هدف از وجود progress bar بر این اساس بود  که کاربر رو تشویق کنیم تا برگزار کننده هامون یه سری از قابلیت هایی که رویدادها دارن رو فعال و ازش استفاده کنن تا به این نحو بتوانیم بر کیفیت رویدادها بیفزاییم. لیست آیتم ها یه سری آیتم که الان داریمشون و قصد تشویق کاربر به استفاده ازشون داریم به این شرح است: توضیح رویداد ایمیل دعوت‌نامه همکاری در فروش تبلیغات (خرید تبلیغات وندو) لوگو و کاور سازمان رویدادها نظرسنجی آیتم هایی که برایتون لیست کردم از جمله آیتم هایی است که الان داریمشون. ممکنه برگزار کننده این آیتم ها رو پر کرده /فعال کرده باشه و یا نکرده باشه. و همچنین ترتیبی خواهند داشت به ترتیب تغریف شده نیاز به نمایششان خواهد بود. هر کدام از این آیتم ها توضیحاتی در برخواهد داشت که اینا از طرف کلاینت (فرانت/ موبایل) هامون هندل می شه. از آنجایی که در کنار توضیحات نیاز به لینک به دیگر بخش ها هست و متاسفانه بک نمی تونست درگیر تولید لینک فرانت...

بارگذاری دیتای رویدادهای ویژه کاربران

سلام سرویس اصلی ایوند نیاز به ورودیه ای داره که بتونه رویدادهای ویژه کاربران رو از سرویس مربوطه ای دریافت بکنه. این اطلاعات همانطوری که تحویل گرفته می شه، برای استفاده های بعدی در جدول user_special_event ذخیره می شوند. برای تحویل رویدادها بدین شکل عمل می کنیم: POST http://api.evand.com/ data-providers/user-special-events Headers: Authorization: Bearer TOKEN [ { "user_id": 1, "events": [ [1, 1], [2, 0.9], [100, 0.8] ] }, { "user_id": 2, "events": [ [1, 1], [2, 0.9], [100, 0.8] ] } ] چند نکته، یک اینکه برای اینکه بتونید درخواستی ثبت کنید نیاز به اهراز هویت است و نیاز است توکن jwt تان رو از هدر ارسال نمایید. کاربر تان نیازه که دسترسی ادمین داشته باشه. دیتاهای ارسالی نیاز است بصورت آرایه ارسال شود. می تونید رویدادهایی که مربوط به یه کاربر است رو در یه درخواست جدا ارسال کنید و یا اطلاعات چندین کاربر رو همزمان ارسال کنید. هر کدام که راحت هستید قابل انجام است. اطلاعات رویدادهایی که برای یه کاربر می فرستید، ب...

پاسخ به نظرسنجی رویداد

رویدادهای امکان ارسال نظرسنجی برای شرکت کننده گانشان را دارا می باشند. از طرفی راهی برای پاسخگویی به سوالات نظرسنجی نیاز است. هدف این مطلب توضیح، نحوه پاسخ گویی به سوالات نظرسنجی ارسال شده به شرکت کننده می باشد. برای پاسخ گویی نیاز به کد بلیت، آی دی نظرسنجی و  آی دی سوال (ها) همراه با پاسخ شان وجود دارد که نیاز است بصورت کتبی تحویل ریسورس مورد نظر شود. برای ثبت پاسخ های نظرسنجی به این شیوه عمل می کنیم: POST https://api.evand.com/surveys/ SURVEY_ID /answers { "attendee_id": " TICKET_CODE ", "questions": [ { "id": 1, "answer": ["no", "hello"] }, { "id": 2, "answer": "yes" }, { "id": 3, "answer": ["yes"] } ] } همونطور که ملاحظه می کنید، آی دی نظرسنجی (SURVEY_ID) در URI ریسورس تعیین شده است. یعنی نیازه که قرار بگیره. کد بلیت شرکت کننده (TICKET_CODE) هم در بدنه درخواست ...

۴ رویداد بازدید شده اخیر طی ۲ هفته گذشته

قرار بر این است که تا ۴ رویدادی که کاربر عضو طی ۲ هفته گذشته بازدید کرده است را بصورت لیست در آورده و تقدیم حضورشان کنیم. این لیست قابلیت خالی بودن را دارا می باشد. حداکثر آیتم های موجود در این لیست ۴ تا خواهد بود ولی کمتر از این هم می تواند باشد. یعنی ۳، ۲، ۱، و هیچی. رویدادهای بازدید شده مربوط به کاربر عضو ایوند می باشد. در نتیجه نیاز است که توکن کاربر رو از طریق هدر برای ریسورس مربوطه ارسال نمایید. دریافت لیست برای دریافت لیست بدین صورت عمل می کنیم: GET https://api.evand.com/ recently-visited-events Headers: Authorization: Bearer TOKEN {     "data": [         {             "name": "event name",             "slug": "event_slug",             "city_name": "تهران",             "online": false,             "organization_name": "org name",         ...

سیب: اجرای کمپین

درود کار این ریسورس بر این اساسه که کمپین ای برای عده مشخصی از افراد اجرا شود. ابتدا کمپین هایی در sendinblue تعریف، سپس برای اجرا شدن شان می توان با استفاده از همین ریسورس تعریف شده، که در زیر به شرحش خواهیم پرداخت استفاده نمود. اجرای کمپین برای اجرای کمپین ای، درخواستی بدین شکل به ریسورس مورد نظر ارسال می کنیم: POST https://api.evand.com/sib/runner/campaigns/ CAMPAIGN_NAME Headers:  Authorization: Bearer ACCESS_TOKEN [ {            "email": "email2@address.com”,             “eventdata” : […],            “properties” : […]         },         {            "email": "email1@address.com”,            “eventdata” : […],            “properties” : […]         },         ....

آمار بازدید رویداد، کمپین

بعد از اجرای کمپین ای، برای دریافت آمار بازدید مربوط به کمپین اجرا شده، می شه به طریق ای که در زیر توضیح داده می شه، بدست آورد: قابلیتی که این ریسورس داره اینه که می شه در لینک مربوط به رویداد جست و جو کرد. در اصل وقتی کمپین ای اجرا می شه، موارد یکتایی در لینک رویداد مثل utm و امثالش اضافه می شه. که با جست و جوی این موارد می شه به تعداد بازدید مربوطه دست پیدا کرد. برای دریافت تعداد بازدید به این شکل عمل می کنیم: GET https://api.evand.com/statistics/total-event-page-visits { "total": 0, "since_last_x_days": 30 } در این مثال هیچ پارامتری به ریسورس مورد نظر داده نشده است و اتفاقی که می افته اینه که بصورت پیش فرض کل فروش ۳۰ روز گذشته رو بر می گردونه. فید total تعداد کل بازدید رو می گه. فید since_last_x_days هم باعث می شه آمار مربوط به تعداد روزهای تعیین شده، لحاظ بشه. پارامتر های ورود که این ریسورس می گیره به این شرح است: پارامتر query که هم می تونه متن باشه و یا آرایه ای از متن ها. مقدار query هم اگه لیستی از متن باشه، چک می شه این...

آمار فروش بلیت

هدف در آوردن تعداد فروش بلیت بر اساس یه سری ورودی هست. ممکنه کمپینی اجرا شده باشه، که در نهایت لینک رویدادی که دارای utm و موارد این چنینی در لینک گنجانده شده است به دست کاربر می رسد. از این طریق ممکنه فروشی رخ بده و کاربر مورد نظر اقدام به خرید بلیتی کند. هدف در آوردن تعداد این گروه از شرکت کنندگان است. برای دریافت تعداد فروش به این شکل عمل می کنیم: GET https://api.evand.com/statistics/total-sold-tickets { "total": 0, "since_last_x_days": 30 } در این مثال هیچ پارامتری به ریسور مورد نظر داده نشده است و اتفاقی که می افته اینه که بصورت پیش فرض کل فروش ۳۰ روز گذشته رو بر می گردونه. البته توجه کنید که یه سری فیلتر هایی روی داده های مورد نظر انجام می شه. به عنوان مثال کاربر قبل از خرید حتما باید از صفحه رویداد بازدید کرده باشه. که البته طبیعتا همه بازدید می کنن مگر اینکه دیتاش به هر دلیلی تو سیستم ثبت نشده باشه. فید total تعداد کل فروش بلیت رو می گه. فید since_last_x_days هم تعداد روزهای گذشته که از دیتاهاشون استفاده می شه. روزهای قبلت...

فید زنده - کانکت

سلام فید زنده شامل ۲ بخش ثبت پیام و خواندن پیام های ثبت شده می باشد. البته ممکنه حذف پیام رو هم اضافه کنیم. ثبت پیام برای ارسال و ثبت پیام در فید زنده، درخواستی بدین منظور ارسال می نماییم: POST https://connect.evand.com/api/ livefeed/messages Headers: Authorization: Bearer ACCESS_TOKEN Content-Type: application/json { " message ": "your message goes here" } همین. توجه کنید که ارسال فیلد message ضروری است و در صورت ارسال نشدنش خطای ۵۰۰ خواهید گرفت. در صورت موفقیت آمیز بودن قضیه کد ۲۰۴ برگشت داده می شه. در صورت نبود دسترسی کافی کد ۴۰۱ برگشت داده خواهد شد. برای اجتناب از این قضیه نیاز است توکن مربوط به کاربر لاگین شده رو به این ریسورس ارسال نمایید. این ریسورس هیچ اطلاعاتی برگشت نمی ده. مشاهده پیام ها برای مشاهده پیام های ثبت شده در فید زنده، درخواستی بدین صورت ارسال می نماییم: GET https://connect.evand.com/api/ livefeed/messages Headers: Authorization: Bearer ACCESS_TOKEN {   "_total_items": 11...

ارسال پیام به شرکت کننده‌گان (کانکت)

هدف از تسک اصلی این بود که برگزار کننده گان بتونن به شرکت کنندگان رویدادشون پیام بفرستن. در حال حاضر پیام به صورت پوش نوتیفکیشن نیاز است تا ارسال شود. برای این منظور برای ارتباط بین سرویس اصلی ایوند که ارتباط برگزار کننده باهاش هست، با سرویس کانکت، نیاز به آماده سازی ریسورس دیگری در سرویس کانکت بود که در صورت نیاز پیام مربوطه از طرف سرویس اصلی ایوند به سرویس کانکت تحویل داد شود تا پیام نسبت به شرایط تعیین شده، ارسال گردد و تحویل شرکت کنندگان داده شود. ارسال پیام برای ارسال پیام به شرکت کنندگان رویدادی به این نحو عمل می کنیم: POST https://connect.evand.com/api /announcements/messages Headers: Content-Type: application/json Authorization: Bearer A_CLIENT_SPECIFIC_TOKEN { "eventId": 305457, "subject": "Hello", "description": "Bye", "sendDate" : "2010-10-10 12:00:00" } چند نقطه اینجا وجود داره که نیاز به توضیح هست. نکاتی در رابطه با دیتای ارسالی آی دی رویداد اجباری هست و...

ریکاوری بلیت های فعال و یا آخرین بلیت های فعال کاربر

سلام هدف از این تسک، بازیابی بلیت بوده. یعنی در صورتی که بلیت خود را گم گرده باشیم و یا حتی گم نکرده باشیم و بلیت رو داریم و دنبال دانلود PDF اش هستیم می شد از این ریسورس برای دریافت به بلیت مورد نظرمان اقدام کنیم. این ریسورس بلیت هایی که در حال حاضر رویداد فعالی داشته باشن رو لیست می کنه و برای رویدادهای گذشته کاربری نخواهد داشت. از آنجایی که چیزهایی رفته رفته شکل های گوناگون به خود می گیرند و معنی شان عوض می شود، اتفاقی بوده که برای این ریسورس هم افتاده. البته کاربرد اصلی خودش رو حفظ کرده و تنها مسئله ای که بهش اضافه شده اینه که در صورتی که به ایوند لاگین کرده باشیم (توکن اهراز هویت مان در دست راستمان باشد) می شود بدون نیاز به تعیین کد تائیدیه ای به اطلاعات مربوطه دسترسی داشت. کاربرد اول: بازیابی بلیت برای مهمانان گرامی برای این منظور نیاز است ابتدا یکی از ایمیل، شماره موبایل، و یا کد بلیت را از کاربر دریافت کنید تا به شخص مورد نظر کد تائیدیه ای ارسال شود. در صورتی که ایمیل گرفته شود به کاربر کد تائیدیه ای ایمیل خواهد شد. برای شماره موبایل هم پیامک خواهد شد. د...