رُبات‌های تحت وب درخدمت شما هستند!

صاحاب: آب حوض رو عوض کن
رُبات: آب حوض عوض شد
صاحاب: پنج کیلو سیب‌زمینی بگیر
رُبات: گرفتم
صاحاب: ناهار بپز
رُبات: پُختم
صاحاب: پیراهنام رو اتو کن
رُبات: اتو کردم

خب مسئله اینجاست که احتمالا فکر می‌کنید دارم شوخی می‌کنم با شما، اما در ادامه متوجه می‌شوید که به وقوع پیوستن ِ چنین رویایی برای‌مان، همچین هم دور از ذهن نیست!

مدت‌ها پیش قصد داشتم در رابطه با سرویس imified بنویسم که تا همین حالا وقت نشده بود. imified برای‌مان کار بزرگی انجام می‌دهد و این امکان را فراهم می‌کند که بتوانیم رُبات‌هایی با وظایف دل‌خواه بسازیم و از طریق مختلف به این رُبات‌ها دستور بدهیم. درواقع اصل ماجرا و کار بزرگی که imified می‌کند همین است. ما می‌توانیم از طریق مسنجرهایی مثل جی‌تاک، یاهو یا ام‌اس‌ان و یا با توییتر و یا حتی با اس‌ام‌اس، به رُبات‌مان دستور بدهیم. به‌نظر من که خیلی جالب است.

بخش برنامه‌نویسی رُبات، پای خودمان است. البته خبر خوش این هست که با هر زبان سمت سروری می‌شود برای رُبات‌مان برنامه بنویسیم. پی‌اچ‌پی، پرل، پایتون و … .

شروع کار با imified

قبل از هرچیز باید در imified عضو بشوید (از اینجا). بعد از عضویت وارد اکانت خود شوید. در سمت راست صفحه، دکمه‌ی Create a new bot را بزنید.

Bot Name: در این قسمت یک نام برای رُبات‌تان انتخاب کنید.
Screen Name: نامی که در این قسمت وارد می‌کنید نامی است که برای ارتباط با رُبات از طریق مسنجرها، به آن اضافه می‌کنید. یعنی یک همچین چیزی: mybot@bot.im و این را در مسنجر خود اد می‌کنید تا بتوانید با این رُبات ارتباط برقرار کنید.
Bot URL: در این قسمت، باید آدرس فایلی که برنامه‌ی رُبات‌تان در آن نوشته شده است را بدهید. برای مثال اگر با پی‌اچ‌پی برنامه نوشته‌اید و نام فایل برنامه mybot.php هست، باید یک همچین آدرسی وارد کنید: http://yourdomain.com/bots/mybot.php. و گفتن هم ندارد که ما برنامه‌مان را باید روی سروری آپلود کنیم که پی‌اچ‌پی روی‌ش اجرا شود (باتوجه به مثال بالا پی‌اچ‌پی را عرض کردم. با هر زبانی که برنامه را نوشته‌ایم، سرورمان باید بتواند آن زبان را اجرا کند).

بعد از پُر کردن این سه فیلد، روی Create new bot کلیک کنید تا رُبات ساخته شود. این کل ماجرا بود. حالا با هم یک رُبات کوچک درست می‌کنیم؛

ساخت رُبات Hello World با پی‌اچ‌پی

اول مانند بالا یک رُبات جدید ایجاد کنید و بعد یک فایل با نام helloworld.php بسازید و کد زیر را در آن قرار دهید و بعد روی یک سروری که پی‌اچ‌پی را اجرا می‌کند آپلودش کنید (و آدرس این فایل را هم که قبلا در Bot URL رُبات‌تان وارد کرده‌اید):

<?php
switch ($_REQUEST['step']) {
case 1:
echo "Hi, what's your name?";
break;
case 2:
echo "Hi " . $_REQUEST['value1'] . ", where do you live?";
break;
case 3:
echo "Well, welcome to this hello world bot, " . $_REQUEST['value1'] . "<br>from " . $_REQUEST['value2'] . ".<reset>";
break;
}
?>

در ابتدا شما یک پی‌ام در مسنجر به رُبات می‌دهید. مثلا سلام می‌کنید و رُبات در جواب، جمله‌ی ” Hi, what’s your name?” را می‌فرستد (خط ۴). حالا شما اسم‌تان را به رُبات می‌گویید و او هم با تابع $_REQUEST نام شما را می‌گیرد و این جمله را می‌فرستد: “Hi [your name], where do you live?” (خط ۷). باز هم شما در جواب نام جایی که در آن زندگی می‌کنید را می‌دهید و باز رُبات با تابع $_REQUEST اسم مکان زندگی‌تان را می‌گیرد و این جمله را می‌فرستد: “Well, welcome to this hello world bot, [your name] from [your city].” (خط ۱۰). یک تابع هم خود imified دارد که در انتهای خط ۱۱ می‌بینید. <reset>. این تابع باعث می‌شود تا رُبات ریست شود و کارش را دوباره از اول شروع کند.
یک بخش Debugger هم در imified وجود دارد برای خطایابی برنامه‌ای که برای رُبات‌مان نوشتیم و خیلی به‌درد بخور است.

با این رُبات‌ها خیلی کارها می‌شود کرد. کافی است کمی ایده و خلاقیت داشته باشید و بتوانید این ایده را پیاده کنید و رُبات‌هایی با کارایی‌های جالب بسازید. مثلا از طریق API مترجم گوگل، یک رُبات مترجم بسازید. خود من همان چندوقت پیش که با imified آشنا شده بودم یک رُبات ساختم که می‌شود با آن توییت کرد، ایمیل فرستاد و به فرندفید مطلب ارسال کرد. کافی است این را در یک مسنجری اد کنید aliha@bot.im و به‌ش سلام کنید و بعد از اینکه پرسید چه کاری می‌خواهید انجام دهید، تایپ کنید twitt یا email یا friendfeed.

خب دیگر کافی‌ست؛ بروید رُبات بسازید ببینیم چه‌کار می‌کنید :)

دیدگاه‌ها (۳۶)

  • ممنون ،
    فقط چطوری می شه تو یاهو هم ادش کرد
    بعد اگه ممکنه می شه یه چیزی شبیه API خودتون یا آموزشش رو هم بنویسین ممنون
    علیرضا ،

    پاسخ

  • ممنون از مطالب جذابتون.من زیاد php کار نکردم و می خواستم اگه ممکنه یه کم تو نوشتن کدها کمکم کنید.من برنامه ای که گذاشتین رو تست کردم و جواب گرفتم اما می خوام یه سری تغییرات تو عملکرد برنامه ایجاد کنم.من می خوام رباتم بعد از دریافت پیام از مسنجر چند تا شرط رو چک کنه و بعد جواب بده.مثلا اگه ما تو پی امی که ارسال می کنیم بنویسیم سینا ربات کلمه ایران رو ارسال کنه.دوم این که این تابع $_REQUEST یه چیز ثابته یا هر متغیری میشه به جاش استفاده کرد ؟؟؟ گفتم که من خیلی برنامه نویسی بلد نیستم ولی این چیزیه که من نوشتم و جواب نگرفتم اگه میشه تو اصلاح کدها کمکم کنید.

    پاسخ

    برای ایجاد شرط می تونید به این شکل برنامه تون رو بنویسید:

    if ($_REQUEST['step'] == “sina”){
    echo ‘Iran’;
    }

    پاسخ

  • ممنون از پاسختون.کارم راه افتاد.حالا می خوام با شروطی که روی رباتم میزارم توی یه صفحه اچ تی ام ال تغیرات ایجاد کنم.مثلا اگه کلمه ارسالی از یاهو مسنجر red بود صفحه اچ تی ام الم که روی هاست کنار برنامه پی اچ پی آپلود شده به رنگ قرمز در بیاد(bgcolor=red).اما من نمی دونم چجوری بین پی اچ پی و اچ تی ام ال ارتباط برقرار کنم.البته اگه بشه کل برنامه یه فایل باشه که چه بهتر.ممنون میشم راهنمایی کنید.

    پاسخ

  • من که ندونستم این متغیری که از سوی روبوت ارسال می شه و به برنامه پردازشگر می رسه اسمش چیه!
    یعنی با متغیر سراسری $_reqest می شه به هر متغیر رسیده با نام step دسترسی داشت
    راهنمایی کنی ممنونم.

    پاسخ

    step حاوی اولین پیغام کاربر هست و به محض ارسال، روبات اولین پاسخ خود را می‌دهد. بعد از آن، هر پیغامی که کاربر ارسال می‌کند به ترتیب با value1 و value2 و valeu3 و… مشخص می‌گردد:
    کاربر: سلام => step
    روبات: علیک سلام => value1
    کاربر: حال شما؟ => value2
    روبات: چاکریم => value3
    و …

    پاسخ

    البته فکر می‌کنم اشتباه کردم. نباید به پیغام‌های روبات valueای نسبت می‌دادم. یعنی درستش یک همچین چیزی هست:
    کاربر: سلام => step
    روبات: علیک سلام
    کاربر: حال شما؟ => value1
    روبات: چاکریم
    کاربر: تست => value2

    پاسخ

دیدگاه خود را ارسال کنید


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


<a> <b> <blockquote> <i> <em> <pre> <code> <strong>