PHP में Twitter API के लिए एक oAuth प्रोटोकॉल-आधारित एप्लिकेशन विकसित करना



इस लेख में मैं PHP में OAuth प्रोटोकॉल का उपयोग करके ट्विटर एपीआई के साथ काम करने के बारे में बात करूंगा।

OAuth प्रोटोकॉल एक उपयोगकर्ता नाम और पासवर्ड को पास किए बिना उपयोगकर्ता डेटा तक पहुंच प्रदान करता है। नए आवेदन प्राधिकरण नियमों को 31 अगस्त से ट्विटर के साथ काम करने के लिए "OAuth" तकनीक के उपयोग की आवश्यकता है।

परीक्षण एप्लिकेशन, जो अंत में बाहर हो जाएगा, उपयोगकर्ता के संदेश फ़ीड, अपने अनुयायियों की नवीनतम स्थितियों का फ़ीड प्रदर्शित करने में सक्षम होगा, और प्रत्येक अनुयायी या मित्र की स्थिति के बगल में बटन पर क्लिक करके, आप इस उपयोगकर्ता की संपूर्ण फ़ीड पढ़ सकते हैं।



तो, शुरुआत के लिए, इस लिंक पर एक नया एप्लिकेशन बनाएं।



अब हमारे पास आवश्यक डेटा है जिसे config.php में सहेजा जाना चाहिए



define('CONSUMER_KEY', 'Your consumer key');

define('CONSUMER_SECRET', 'You consumer secret');

define('OAUTH_CALLBACK', 'http://yousite.ru/callback.php');








कनेक्ट पृष्ठ पर, Connect.php ट्विटर पर उपरोक्त डेटा कनेक्ट करें और इसकी उपलब्धता की जांच करें:



if (CONSUMER_KEY === '' || CONSUMER_SECRET === '') {

echo 'You need a consumer key and secret to test the sample code. Get one from https://twitter.com/apps'; exit;}








हम कनेक्शन प्रक्रिया शुरू करते हैं (redirect.php पृष्ठ पर जाएं):



$content = 'Sign in with Twitter';

<?php print_r($content); ?>








हम ट्विटर एपीआई और एप्लिकेशन अकाउंट डेटा को रीडायरेक्ट करने के लिए लाइब्रेरी से कनेक्ट करते हैं



require_once('twitteroauth/twitteroauth.php');

require_once('config.php');








हमारे आवेदन खाते के आधार पर TwitterOuth ऑब्जेक्ट बनाएं:



$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);







इसके बाद, हम ट्विटर से अस्थायी टोकन प्राप्त करते हैं और उन्हें बचाते हैं:



$_SESSION['oauth_token'] = $token = $request_token['oauth_token'];

$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];








एक अस्थायी टोकन के आधार पर, हम उपयोगकर्ता को ट्विटर पर प्राधिकरण के लिए भेजते हैं:



$url = $connection->getAuthorizeURL($token);







यदि प्राप्त टोकन पुराना है, तो हम सत्र को खाली करते हैं और उपयोगकर्ता को ट्विटर से कनेक्ट करने के लिए पेज पर भेजते हैं:



if (isset($_REQUEST['oauth_token']) && $_SESSION['oauth_token'] !== $_REQUEST['oauth_token']) {

$_SESSION['oauth_status'] = 'oldtoken';

header('Location: ./clearsessions.php');








Clearsession.php पेज पर, कॉल करें:



session_start();

session_destroy();

header('Location: ./connect.php');








यदि सब कुछ ठीक रहा, तो हमारे आवेदन खाते और अस्थायी टोकन के आधार पर TwitterOuth ऑब्जेक्ट बनाएं:



$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);









अब हमें ट्विटर से एक्सेस कुंजी मिलती है, जिसे भविष्य में उपयोग के लिए सहेजा जाना चाहिए:



$access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);

$_SESSION['access_token'] = $access_token;








अस्थायी टोकन की अब आवश्यकता नहीं है:



unset($_SESSION['oauth_token']);

unset($_SESSION['oauth_token_secret']);








इसके बाद, हमारी साइट के पृष्ठ पर जाएं:



header('Location: ./index.php');







Index.php पेज पर, हम एक टोकन में यूजर टोकन को सेव करते हैं:



$access_token = $_SESSION['access_token'];







हम अपने आवेदन खाते और उपयोगकर्ता टोकन के आधार पर TwitterOuth ऑब्जेक्ट बनाते हैं:



$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']);







अब हम उपयोगकर्ता डेटा प्राप्त करने के लिए विभिन्न तरीकों का उपयोग कर सकते हैं।

उदाहरण के लिए, उपयोगकर्ता खाते की जानकारी प्राप्त करें।



$content_user = $connection->get('account/verify_credentials');

$array_user = (array)$content_user;

$user_id=$array_user["id"];









उपयोगकर्ता की आईडी के आधार पर, आप पैरामीटर सरणी में आईडी निर्दिष्ट करके अपने फ़ीड से संदेश प्राप्त कर सकते हैं (पैरामीटर सरणी में आप प्रदर्शित रिकॉर्ड की संख्या भी इंगित कर सकते हैं):



$content_friends=$connection->get('statuses/friends_timeline',array('id' => $user_id));







सभी उपयोगकर्ता अनुयायियों के हाल के पोस्ट:



$content_followers=$connection->get('statuses/followers', array('id' => $user_id));







स्वयं उपयोगकर्ता संदेश फ़ीड (डिफ़ॉल्ट रूप से, केवल 20 प्रविष्टियाँ प्रदर्शित की जाती हैं, संदेशों की अधिकतम संख्या 200 है)।



$content_userline=$connection->get('statuses/user_timeline', array('id' => $user_id,'count'=>200));







अन्य विधियों को उसी सिद्धांत पर बुलाया जा सकता है।



सामान्य ट्विटर फ़ीड: api.twitter.com/1/statuses/public_timeline.xml

आपके लिए लिखे गए सार्वजनिक संदेश: api.twitter.com/1/statuses/mentions.xml?count=5/page=1

मेरा रीट्वीट: api.twitter.com/1/statuses/retweeted_by_me.xml?count=5/page=3

मुझे किए गए ट्वीट : api.twitter.com/1/statuses/retweeted_to_me.xml?count=5&page=3

और अन्य तरीके।



echo print_r($content_friends); //







संदेश फ़ीड प्राप्त करते समय परिणाम stdClass ऑब्जेक्ट तत्वों की एक सरणी होगी:

[०] => stdClass ऑब्जेक्ट

(

[create_at] => Sat Sep 04 11:01:48 +0000 2010

[in_reply_to_screen_name] =>

[स्रोत] => IncredebleTB

[रीट्वीट किया गया] =>

[छंटनी] =>

[in_reply_to_status_id] =>

[in_reply_to_user_id] =>

[योगदानकर्ता] =>

[जगह] =>

[निर्देशांक] =>

[उपयोगकर्ता] => stdClass ऑब्जेक्ट

(

[show_all_inline_media] =>

[ profile_background_image_url ] => s.twimg.com/a/1283555538/images/themes/theme16/bg.gif

[पसंदीदा_काउंट] => ०

[ profile_image_url ] => a0.twimg.com/profile_images/1105647496/robot_normal.jpg

[विवरण] => वेब डिजाइन, वेब अनुप्रयोग विकास, वेबसाइट विकास

[योगदान_ सक्षम] =>

[profile_sidebar_fill_color] => f2f2f2

[url] => dandreev.com

[geo_enabled] =>

[profile_background_tile] =>

[screen_name] => अविश्वसनीयटीबी

[लैंग] => एन

[create_at] => सोम अप्रैल 26 20:32:14 +0000 2010

[profile_sidebar_border_color] => a8a8a8

[स्थान] => मास्को

[सत्यापित] =>

[follow_request_sent] =>

[निम्न] => १

[profile_background_color] => 9AE4E8

[followers_count] => 99

[संरक्षित] =>

[profile_text_color] => 141414

[नाम] => दिमित्री एंड्रीव

[सूचीबद्ध_काउंट] => 0

[profile_use_background_image] => १

[time_zone] => क्विटो

[friends_count] => 48

[आईडी] => १३ id४५ ९ २४

[स्टेटस_काउंट] => 900

[सूचनाएं] =>

[utc_offset] => -18000

[profile_link_color] => 0084B4

)



[भू] =>

[retweet_count] =>

[आईडी] => २२ ९ ६६8833३ ]६

[इष्ट] =>

[पाठ] => क्रेगलिस्ट सेंसर किया गया: वयस्क अनुभाग थोड़ा नीचे आता है ।ly/9evRKN (@techTrunch) के माध्यम से

)



उन्हें एक्सेस करने के लिए, आप इस तरह से उदाहरण के लिए संपर्क कर सकते हैं:



$array_friends = (array)$content_friends;

foreach ($array_friends as $friends_sets)

{

$friends_sets=(array)$friends_sets; // stdClass Object

$friend_name=$friends_sets["user"]->name; // stdClass Object

}









Php में oAuth के लिए लाइब्रेरी यहां से डाउनलोड की जा सकती है

आवेदन जो अंत में निकला, वह यहां है । आवेदन में 3 पृष्ठांकन टेप (अनुयायी, मित्र और उपयोगकर्ता का एक व्यक्तिगत टेप) शामिल हैं। इसके अतिरिक्त, jTweetsAnywhere पुस्तकालय जुड़ा हुआ है, जो प्रत्येक उपयोगकर्ता (शीर्ष पर ट्विटर बटन के साथ कनेक्ट) के बारे में जानकारी प्रदर्शित करने की अनुमति देता है।



All Articles