2013-06-11 6 views
27

मैं सामान्य रूप से ट्विटर का उपयोग करने के लिए बिल्कुल नया हूं और किसी भी प्रोजेक्ट पर "नवीनतम ट्वीट्स" को कभी भी एम्बेड नहीं किया है। मैं बस साइट फूटर पर 3-4 नवीनतम ट्वीट्स को एम्बेड करने की कोशिश कर रहा हूं जिसमें कार्यक्षमता की कोई अतिरिक्त विशेषताएं नहीं हैं। मैं शोध कर रहा हूं कि अब कुछ समय से ऐसा कैसे करें और कुछ परेशानी हो रही है।ट्विटर एपीआई सेट अप करना, पिछले कुछ ट्वीट्स प्राप्त करना

मैंने प्रोजेक्ट में निम्न कोड स्निपेट जोड़ा, जो बहुत अच्छी तरह से काम करता है, हालांकि, मुझे यकीन नहीं है कि स्निपेट को कैसे अपडेट किया जाए, इसलिए यह मेरे ट्विटर खाते के बजाय इसे स्थापित करने के बजाय उपयोग करता है।

<div id="twitter_update_list"> 
    </div> 
    <script type="text/javascript" src="http://api.twitter.com/1/statuses/user_timeline.json?screen_name=stackoverflow&include_rts=true&count=4&callback=twitterCallback2"> 
    </script> 

इसके अलावा, मैं पढ़ रखना है कि सबसे अधिक इस्तेमाल किया ट्विटर एपीआई क्योंकि ट्विटर लोगों को अपने स्वयं का उपयोग करना चाहता जल्दी ही काम के रूप में तीसरे पक्ष के लिए विरोध करना बंद कर देगा।

मुझे यकीन नहीं है कि यहां से कैसे आगे बढ़ना है। मैं इस संबंध में किसी भी सुझाव की सराहना करता हूं। संक्षेप में, मैं बस इतना करने की कोशिश कर रहा हूं कि मेरे खाते से 3-4 नवीनतम ट्वीट्स लें।

अग्रिम में बहुत धन्यवाद!

+0

में मौजूद है और अगर आपको जावास्क्रिप्ट-केवल समाधान की आवश्यकता है, तो आप जेसन मेयस के ट्विटर-पोस्ट-फ़ेचर का उपयोग कर सकते हैं http://jasonmayes.com/ परियोजनाओं/ट्विटर एपीआई/कुछ दिनों में मैं इसे एक नई नौकरी के लिए कोशिश करूंगा, आज ऐसा लगता है कि यह एजी है सर्वर पक्ष में कौन काम नहीं कर सकता है के लिए ood रास्ता। –

उत्तर

59

तो आप वास्तव में इस क्लाइंट पक्ष को और नहीं करना चाहते हैं। (बस कई डॉक्स के माध्यम से चला गया, और devs सभी oAuth सर्वर साइड करने के लिए सुझाव है)

आप क्या करने की जरूरत:

पहले: https://dev.twitter.com पर साइन अप, और एक नया आवेदन कर सकते हैं।

दूसरा: नोट: आपका ग्राहक कुंजी/पहुंच टोकन के साथ गुप्त/गुप्त

तीसरा: डाउनलोड ट्विटर oAuth लाइब्रेरी (इस मामले मैं PHP संग्रहालय https://github.com/abraham/twitteroauth इस्तेमाल किया, अतिरिक्त पुस्तकालय यहाँ स्थित: https://dev.twitter.com/docs/twitter-libraries)

चौथा: (php का उपयोग कर) सुनिश्चित करें cURL सक्षम किया गया है, अगर एक LAMP पर अपनी चल रहा है यहाँ आदेश आप की जरूरत बताया गया है:

sudo apt-get install php5-curl 

पांचवें: एक नई PHP फ़ाइल करें और सम्मिलित निम्नलिखित: टॉम इलियट http://www.webdevdoor.com/php/authenticating-twitter-feed-timeline-oauth/

<?php 
session_start(); 
require_once("twitteroauth/twitteroauth/twitteroauth.php"); //Path to twitteroauth library you downloaded in step 3 

$twitteruser = "twitterusername"; //user name you want to reference 
$notweets = 30; //how many tweets you want to retrieve 
$consumerkey = "12345"; //Noted keys from step 2 
$consumersecret = "123456789"; //Noted keys from step 2 
$accesstoken = "123456789"; //Noted keys from step 2 
$accesstokensecret = "12345"; //Noted keys from step 2 

function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { 
    $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); 
    return $connection; 
} 

$connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); 

$tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets); 

echo json_encode($tweets); 
echo $tweets; //testing remove for production 
?> 

और उछाल के लिए धन्यवाद, आपका काम हो गया। मुझे पता है कि यह एक शुद्ध जेएस समाधान नहीं है लेकिन फिर से नए ट्विटर एपीआई 1.1 दस्तावेज़ों के माध्यम से पढ़ रहा है, वे वास्तव में नहीं चाहते कि आप इस क्लाइंट साइट को करें। उम्मीद है कि यह मदद करता है!

+0

उत्तर के लिए धन्यवाद! 3 ट्वीट प्राप्त करने की अपेक्षा से बहुत अधिक काम करता है, लेकिन मुझे वह करना है जो मुझे करना है;) मैं इसे आज़मा दूंगा और वापस देखूंगा। – AnchovyLegend

+0

जब आप "dev.twitter.com पर साइन अप करें" कहते हैं - क्या आपको उस खाते के रूप में ऐसा करने की ज़रूरत है, जिसे आप (मेरे ग्राहक का एसीसी) या सिर्फ कोई खाता (यानी मेरा खाता) से ट्वीट प्राप्त करना चाहते हैं? – NickG

+0

@NickG नहीं, यह सिर्फ एक ट्विटर खाता होना है। – Mac

-14

वास्तव में ट्विटर पर कई प्रतिबंध हैं, क्योंकि नाइके और अन्य जैसी कंपनियों से बहुत सी प्रतियोगिताएं हैं। ट्वीट का पठन इस अर्थ में सीमित है कि यदि आप नवीनतम एपीआई के माध्यम से पढ़ रहे हैं तो वास्तव में यह थोड़ा सा समय पीछे है।

उन्होंने डीएम देरी को भी नियंत्रित किया है जिसका मतलब है कि आप तत्काल डीएम नहीं कर सकते हैं, भले ही अन्य पार्टी केवल एक्स मात्रा के बाद प्राप्त करे। यदि आप स्क्रिप्ट के माध्यम से करते हैं, और यहां तक ​​कि यदि आप डीएम को एक सिंगल आईपी ट्विटर से बहुत कुछ करने की कोशिश करते हैं तो भी आपको ब्लॉक कर देगा।

22

कैसे कोर पीएचपी कार्यक्षमता केवल (कोई कर्ल या ट्विटर oAuth पुस्तकालय आवश्यक) के साथ उपयोगकर्ता के अंतिम कुछ ट्वीट्स पाने के लिए:

  1. अपने अनुप्रयोग/वेबपेज रजिस्टर https://apps.twitter.com (आपको अपने व्यक्तिगत खाते मोबाइल सत्यापित करना पड़ सकता संख्या भी)

  2. नोट उपभोक्ता कुंजी और उपभोक्ता सीक्रेट

  3. पीएचपी कोड:

    // auth parameters 
    $api_key = urlencode('REPLACEWITHAPPAPIKEY'); // Consumer Key (API Key) 
    $api_secret = urlencode('REPLACEWITHAPPAPISECRET'); // Consumer Secret (API Secret) 
    $auth_url = 'https://api.twitter.com/oauth2/token'; 
    
    // what we want? 
    $data_username = 'Independent'; // username 
    $data_count = 10; // number of tweets 
    $data_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?tweet_mode=extended'; 
    
    // get api access token 
    $api_credentials = base64_encode($api_key.':'.$api_secret); 
    
    $auth_headers = 'Authorization: Basic '.$api_credentials."\r\n". 
           'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'."\r\n"; 
    
    $auth_context = stream_context_create(
        array(
         'http' => array(
          'header' => $auth_headers, 
          'method' => 'POST', 
          'content'=> http_build_query(array('grant_type' => 'client_credentials',)), 
         ) 
        ) 
    ); 
    
    $auth_response = json_decode(file_get_contents($auth_url, 0, $auth_context), true); 
    $auth_token = $auth_response['access_token']; 
    
    // get tweets 
    $data_context = stream_context_create(array('http' => array('header' => 'Authorization: Bearer '.$auth_token."\r\n",))); 
    
    $data = json_decode(file_get_contents($data_url.'&count='.$data_count.'&screen_name='.urlencode($data_username), 0, $data_context), true); 
    
    // result - do what you want 
    print('<pre>'); 
    print_r($data); 
    

के साथ इस कि openssl php.ini

ठीक करने के लिए में सक्षम नहीं है, हो सकता है Windows और Centos6 डिफ़ॉल्ट स्थापना के लिए XAMPP (पीएचपी 5.3)

सबसे संभावित समस्या के साथ परीक्षण किया गया तो देखें कि क्या विस्तार = php_openssl.dll या extension = php_openssl.so लाइन php.ini

+0

धन्यवाद @ राउली! अगर मैं कर सकता तो अधिक उत्साहित होगा :) दूसरों के लिए ध्यान दें: वर्तमान में, ट्विटर एक्सेस टोकन की समयसीमा समाप्त नहीं होती है: http://stackoverflow.com/questions/8357568/do-twitter-access-token-expire, https: // dev। twitter.com/oauth/overview/faq – Ben

संबंधित मुद्दे