یک طراح وب

آدم ها را نمی توان فقط به یک یا چند موضوع ِ خاص، محدود ساخت. آدمی که این پشت نشسته است، از هر موضوعی می نویسد!

یک اپلیکیشن ساده و کاربردی با کمک API ِ توییتر بنویسید

نوشته‌ی علیها در August 20, 2009 روی ای پی آی، توییتر

با توییتر آشنا هستید. در 140 کاراکتر، آنچه در اکنون دارد رخ می دهد را می نویسید که به اصطلاح می گوییم داریم توییت می کنیم…

API هم احتمالا می دانید چیست. به زبان ساده، چیزی است که بین نرم افزارها ارتباط ایجاد می کند (Application Programming Interface).

حالا بگذریم از این ها. گاهی اوقات ممکن است به هر دلیلی نتوانید از خود سایت توییتر، توییت بکنید. مواردی مثل فـ.یـ.لـ.تـ.ر شدن از مهم ترین آن هاست. یا حتی ممکن است کلاینت های مورد علاقه تان بعضی وقت ها کار نکنند و یا اصلن شاید دلتان می خواهد یک اپلیکیشن ِ شخصی و با سلیقه و نیاز ِ خودتان داشته باشید.

twitter-app

خب، API ِ توییتر که حی و حاضر هست، پی اچ پی هم مثل شیر دارد نگاه مان می کند و سایت ِ گلابی(!) هم یک افزونه پی اچ پی ِ کامل بر اساس API ِ توییتر، برای توییتر ارائه کرده است. می ماند مخلوط کردن ِ این ها با هم که الان قصد همین کار را داریم. چه می کند اوپن سورس :)

از طریق این اپلیکیشنی که می نویسیم، می توانیم با آن توییت کنیم، بدون اینکه مستقیما با سایت توییتر کاری داشته باشیم.

قبل از شروع

  • یک. فرض ِ من بر این است که شما با پی اچ پی تا حدودی آشنا هستید.
  • دو. مهم ترین پیش نیازتان، دراختیار داشتن یک سرور آپاچی هست.
  • سه. نسخه ی پی اچ پی ِ نصب شده بر روی سرورتان باید افزونه ی cURL را پشتیبانی کند. برای چگونگی ِ فعال کردن cURL، اینجا بروید.
  • چهار. افزونه ی Services Twitter را هم باید نصب کرده باشید (در ادامه، توضیحات لازم در رابطه با نصب Services Twitter را خواهم داد). این افزونه را از سایت گلابی دریافت کنید. در این مقاله، من از نسخه ی 0.2.1 (بتا) استفاده کرده ام.
  • پنج. گفتن ندارد این که حتما باید یک حساب هم در توییتر داشته باشید :)

خب، اگر در رابطه با این 5 مورد مشکلی ندارید، می توانیم برویم سراغ مرحله ی بعدی.

نصب Services Twitter

twitter-files-and-folders-directoryپکیج ِ Services Twitter را که دریافت کردید، ابتدا پوشه ی Services را در مسیر اصلی اپلیکیشن کپی کنید.
فایل twitter.php را به twitter-class.php تغییرنام دهید و در مسیر اصلی اپلیکیشن کپی کنید.
وجود یا عدم ِ وجود ِ پوشه ی tests هم مهم نیست. در آن، نمونه های مختلف برای امکانات دیگر وجود دارد که می توانید از آن ها برای توسعه ی این اپلیکیشن استفاده کنید. یعنی چیزی بیشتر از فقط ارسال توییت!

به جز این ها، به پکیج Validate هم نیاز داریم. از اینجا دریافت کنید. پوشه ی docs و فایل validate.php را در مسیر اصلی اپلیکیشن قرار دهید. با مابقی ِ محتویات ِ پکیج ِ Validate هم کاری نداریم.

در آخر باید ساختار ِ فایل ها و پوشه ها چیزی شبیه به تصویر ِ کناری شود.

فراموش نشود: آدرس هایی که در فایل های twitter-class.php، common.php و sample_multiple.php فراخوانی شده اند، به بررسی و ویرایش نیاز دارند.

طراحی محیط اپلیکیشن

حالا باید در مسیر اصلی اپلیکیشن، یک فایل با نام index.php بسازید و با ادیتورتان بازش کنید و کدهای زیر را در آن قرار دهید:

<html>
<head>
<title>توییت توییت...</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="style.css" type="text/css" media="all" />
</head>
<body>
<div id="content">
<h1><a href="/index.php"><img src="logo.png" border="0" alt="توییت توییت..." title="" /></a></h1>

    <?php
    if (!isset($_POST['submit'])) {
    ?>
<form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
<label>یوز:</label> <br/>
<input class="user" type="text" name="user" /><br/>
<label>پسورد:</label> <br/>
<input class="pass" type="password" name="pass" /><br/>
<label>چی کار می کنی؟</label> <br/>
<textarea class="message" name="status" cols="15"></textarea><br/>
<center><input class="submit" type="submit" name="submit" value="توییت" /></center>
</form>
    <?php
    } else {
      // include class
      include_once 'twitter-class.php';
      try {
        // read form input
        $user = $_POST['user'];
        $pass = $_POST['pass'];
        $status = $_POST['status'];

        // initialize service object
        $service = new Services_Twitter($user, $pass);
        // update status
        $service->statuses->update($status);
        // perform logout
        $service->account->end_session();
        echo 'توییت شد!';
      } catch (Exception $e) {
        die('اوپس: ' . $e->getMessage());
      }
    }
    ?>
<br />
<hr />
<p style="direction: ltr; text-align: left;">created by <a href="http://aliha.ir/" target="_blank">Aliha</a> | <a href="http://twitter.com/alihaa" target="_blank">follow me on twitter</a></p>
</div>
</body>
</html>

در همان مسیر اصلی، یک فایل style.css هم بسازید و دستورات سی اس اس زیر را در آن قرار دهید:

body {
background: #e8fbff url(bg.jpg) no-repeat left top;
color: #666;
}
a {
color: #0CC;
}
#content {
direction: rtl;
font: 12px Tahoma;
margin: 0 auto;
width: 294px;
}
h1 {
font: bold 23px Arial;
color: #0CF;
}
form input.user, form input.pass {
width: 190px;
background-color: #fafafa;
border: 1px solid #ebebeb;
margin: 3px 0 8px 0;
font: 12px Tahoma;
color: #666;
direction: ltr;
}
form input.user:focus, form input.pass:focus {
background-color: #fcffff;
border: 1px solid #41efff;
color: #666;
}
form textarea.message {
width: 250px;
height: 100px;
background-color: #fafafa;
border: 1px solid #ebebeb;
margin: 5px 0 8px 0;
font: 12px Tahoma;
color: #666;
}
form textarea.message:focus {
background-color: #fcffff;
border: 1px solid #41efff;
color: #666;
}
form input.submit {
background-color: #07d7f6;
font: 12px Tahoma;
width: 80px;
height: 25px;
color: #fff;
cursor: pointer;
border: none;
}
form input.submit:hover {
background-color: #43e6fe;
}
form input.submit:focus {
background-color: #ff6d25;
}
label {
color: #666;
}

حالا آدرس ِ اپلیکیشن را در مرورگر وارد می کنیم تا نتیجه را ببینیم.

twitter-app-index

نام کاربری توییتری و رمزعبور را وارد می کنیم و توییت ِ موردنظر را هم می نویسیم و روی توییت کلیک می کنیم:

twitter-app-success

توییت ارسال شده است! حالا می رویم ببینیم اپلیکیشن مان واقعا کار می کند و راست می گوید یا سرکار گذاشته است ما را :)

twitter-twitt-scrshot

این طور که معلوم است، مثل اینکه کار می کند. خب کارمان دیگر تمام شده است.

می توانید این اپلیکیشن را آماده و بی نقص دریافت کنید، یعنی مراحل ِ بالا دیگر فِرت :)
نمونه ی آن را هم اینجا می توانید ببینید.

download-zips

30 دیدگاه نوشته شده است! می توانید دیدگاه خود را بنویسید »

  • سلام،
    خیلی جالب بود. راجع به ASP.NET چطور؟

  • مثل همیشه بی نقص علی جان …
    دقیقا مثل لواشک ( لحاف دشک ) … پس ساختنش اینقدر آسان بود … ها
    ممنون … ازت چیز یاد گرفتم …
    چاکرم …
    فعلا …

  • علیرضا در 09/08/20 گفت:

    @مصطفی
    راستش من ای اس پی اصلا کار نکردم و نمی تونم پاسخ درستی بدم…

  • SHahab در 09/08/21 گفت:

    آقا دستت درد نکنه خیلی ممنون

  • داود مظفری در 09/08/21 گفت:

    یه اسکریپت خیلی راحت تر هم بودش . اوپن سورس بود . تو سایت علیرضا ای جکس هست : ) اون چی ؟ بعد اگه خودمون بنویسیم چی ؟ بهتر نیست ؟

  • داود مظفری در 09/08/21 گفت:

    مرسی بابت نوشته و توضیحش : )

  • علیرضا در 09/08/21 گفت:

    @داود مظفری
    اون با این فرق داره یکم. در مورد اینکه خودت بنویسی یا از همین کلاس های آماده استفاده کنی هم خب باید ببینی خودت می تونی نیازت رو برطرف کنی یا نه. به هرحال این یک کلاس کامل برای استفاده از امکانات مختلف توییتر هست که من فقط به ارسال توییتش توی این مقاله اشاره کردم…

  • unknown در 09/08/21 گفت:

    باز هم مثل همیشه علی جان گل کاشتی ;)
    ممنون ازت

  • Hooman در 09/08/22 گفت:

    salam khoshhal misham bahatoon tabadole link dashte basham .bloge aali darid.ya ali .by

  • کامیار در 09/08/23 گفت:

    @Hooman – بله خب :)) شرمنده بابت آف‌کامنت

  • امین ب در 09/08/23 گفت:

    ممنون بابت آموزش :ی ، منم توییتر سایت رو با این اپلیکیشن راه انداختم ، تنکس

  • محمد در 09/08/24 گفت:

    هووم ! به به مرسی علی یه لایک گنده واست

  • سینا در 09/08/25 گفت:

    ای کاش مثلن یکی یه چیزی مثل صفحه اول تویتتر (البته به فارسی) طراحی می کرد و کدش رو در اختیار بقیه قرار میداد تا میشد توی هاست شخصی ازش استفاده کرد و اینا :) لطف میکنی اگه این کارو بکنی

  • علي رضا در 09/08/26 گفت:

    خيلي جالب بود

  • سوما در 09/08/29 گفت:

    مرسی :)

  • داود مظفری در 09/08/31 گفت:

    @علیرضا – مقسی موسیو :دی

  • hichkas در 09/09/06 گفت:

    سلام.
    این که نوشتین چی هست؟؟؟؟؟؟؟؟توضیح بدین لطفا!!!

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

  • Warrior در 09/09/07 گفت:

    سلام چیزه خیلی جالبیه اما متاسفانه برای من کار نکرد
    این ارور رو میده
    اوپس: Unexpected HTTP status returned from API

  • علیرضا در 09/09/07 گفت:

    @hichkas
    فکر می کنم به اندازه ی کافی توضیح دادم :)

  • علیرضا در 09/09/07 گفت:

    @آقای مینیمال
    نه روی لوکال کار نمی کنه…

  • امین در 09/09/08 گفت:

    ایول!!! یک توییتر شخصی برای هر نفر! ازین شعارای خز امروزی! ;)

  • مرسی… ما هم نصب کردیم بر سایت خویش و البته یکم تغییرات…

  • روی لوکال cURL کار می کنه کافیه cURL رو فعال کنید از php.ini بعد ، از فایروال ویندوز php.exe و مشتقات اون رو استثنا بگیرید . ولی توئیتر از لوکال هاست ساپورت نمی کنه :)

  • SHahab در 09/09/20 گفت:

    میشه کاری کرد که لینک و متن from API را تغیر داد ؟

  • خدا انشاالله اون آباء و اجدادت رو رحمت کنه
    نور به قبرشون بباره . دستت درد نکنه . خسته شده بودم دیگه

  • ehsan در 09/10/19 گفت:

    سلام خسته نباشید من خیلی دوست دارم php یاد بگیرم اگر ممکن است اموزش کامل را برایم بزارید در ضمن بابت این پستتون یک ذره بیشتر توضیح بدهید ممنون می شوم یعنی اول در بلگفا می شود همچین کاری کرد وبعد اگر می شود برای منی که php اصلا نمی دونم چه جوری میشه؟ با تشکر

  • SHahab در 09/10/30 گفت:

    @SHahab – میشه کاری کرد که لینک و متن from API را تغیر داد ؟

  • babakslt در 10/02/20 گفت:

    مرسی خیلی خوب بود. چیز یاد گرفتم. خیلی تحریک کننده است بعد از 4-5 سال در تلاش برای برگشتن هستیم به دنیای برنامه نویسی و اینا
    :)

  • پندار در 10/02/21 گفت:

    حالا هی بنویسید تا این عموفیلتر باف یه راهی پیدا کنه این ای پی آی رو هم ببنده :)

این پست تا به حال بازتابی نداشته است!

لطفا قبل از نوشتن دیدگاه خود، توجه داشته باشید که دیدگاه‌تان در رابطه با این پست باشد. در غیر این‌صورت می‌توانید از فرم تماس استفاده کنید. ممنون از توجه‌تان :)
my avatar

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