با توییتر آشنا هستید. در 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

دیدگاه‌ها (40)

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

  • خيلي جالب بود

    پاسخ

  • مرسی :)

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

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

    پاسخ

  • از وقتي وردپرسي بودي مي‌شناختمت، هميشه كارت عاليه عزيز

    پاسخ

  • آقا جالب بود. موفق باشی.

    پاسخ

  • اولین بار وبلاگت و میبینم جدا فکر عجیب و جالبی داری

    پاسخ

  • خوب من باید چجوری بخونم وبلاگت و؟

    پاسخ

    @پوریا
    از ساعت دوازده امشب به بعد، به حالت عادی برمی‌گرده.

    پاسخ

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

    پاسخ

  • سلام،
    خسته‌نباشید!
    مرسی بابتِ آموزش ِ عالی‌تون!
    من یه سئوال داشتم!
    از اون‌جایی که API ِ نرم‌افزار ِ sharetronix کاملاً مشابه با Api ِ توئیتره!
    آیا می‌شه از این آموزش در شیرترونیکس استفاده کرد؟
    ممنون می‌شم اگه راهنمایی‌م کنید!

    پاسخ

  • با تشكر آموزش بسيار مفيدي بود

    پاسخ

  • سلام
    بهت تبریک میگم کارت در نوبه خودش حرف نداره مخصوصا که این آموزش بهمراه چند تا آموزش دیگت رو خوندم و خوشم اومد
    اگه تمایل داری با هم همکاری داشته باشیم با ایمیلم مکاتبه کن
    خوش حال میشم با یک برنامه نویس حرفه ای همکاری کنم بدون داشتن حتی یک ریال چشم داشت!

    پاسخ

  • سلامی مجدد
    دوست من به تازگی هنگام ارسال توییت با این پیغام مواجه میشم:
    اوپس: Basic authentication is not supported
    تو نمونه شما هم وجود دارد
    علتش چی ممکنه باشه؟
    قابل رفع است؟
    لطفا اگه زحمتی نیست پاسخ منو بدید!

    پاسخ

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


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


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