2010-09-20 17 views
5

इस PHP कोड jQuery के साथ संयोजन के रूप में उपयोग करते हुए im एक नया ट्वीट्स बनाने के लिए .ajax है:PHP और ट्विटर एपीआई का उपयोग कर एक उत्तर बनाना

/* Create a TwitterOauth object with consumer/user tokens. */ 
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']); 

    $qtweet = $_POST['tweet']; 
    $connection->post('statuses/update', array('status' => $qtweet)); 

डाटा jQuery .ajax का एक सा प्रपत्र द्वारा आपूर्ति और है :

<form id="tweethis" method='post' action=''> 
    <textarea style="width: 42em;" name="tweet" rows="5" id="tweet" ></textarea> 
    <br /> 
    <p class="confirm" style="padding-bottom: 4px;">Tweet Sent.</p> 
    <span id="charLeft">140</span> Characters left 
    <br /> 
    <input type='submit' value='Tweet This!' name='submit' id='submit' /> 
</form> 

$("#tweethis #submit").click(function() { 
    //The Tweet 
    var tweettxt = $("textarea#tweet").val(); 
    var ptweettxt = 'tweet=' + tweettxt; 
    $.ajax({ 
     type: "POST", 
     url: "tweet.php", 
     data: ptweettxt, 
     success: function() { 
     $('#tweethis .confirm').css('color','red').slideDown(500).delay(3000).slideUp(500); 
     $('textarea#tweet').val(""); 
     } 
    }); 
    return false; 
}); 

मैं, रूप भी उत्तर से निपटने के लिए अनुकूल करने के लिए उपयोगकर्ता ट्वीट की आईडी क्लिक कर सकते हैं तो चाहते हैं, कि आईडी फार्म में जुड़ जाता है। FORM को एक और छिपे हुए फ़ील्ड की आवश्यकता होगी जो प्रारंभ में खाली हो जाएगा, जब उपयोगकर्ता उत्तर आईडी के बिना सबमिट करता है तो वे सिर्फ एक ट्वीट भेजते हैं।

हालांकि मुझे यह देखने के लिए PHP फ़ाइल में कुछ कोड चाहिए कि यह जांचने के लिए कि क्या _POST खाली है या शून्य है, अगर शून्य सिर्फ एक ट्वीट भेजें लेकिन यदि उसके पास कोई आईडी है तो उत्तर दें।

यदि फ़ील्ड खाली है या आईडी से भरा हुआ है तो मैं चेक कैसे कर सकता हूं?

मुझे जवाब बनाने में सहायता की भी आवश्यकता है।

प्रलेखन यहाँ है:

$qtweet = $_POST['tweet']; 
$tweetid = $_POST['tweetid']; 
$connection->post('statuses/update', array('status' => $qtweet, 'in_reply_to_status_id => $tweetid')); 

सुनिश्चित नहीं हैं कि अगर मैं सही ढंग से सरणी contructing कर रहा हूँ या इस ट्विटर को स्वीकार्य है: http://dev.twitter.com/doc/post/statuses/update

यह वही है मैं PHP के लिए अब तक लिखा है है एपीआई।

.ajax इस सब की तुलना में तुच्छ होगा, क्योंकि मैं केवल छिपे हुए फॉर्म मान को _POST में एक और मान के रूप में पास कर दूंगा।

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

उत्तर

0

आप empty() का उपयोग करता है, तो कुछ खाली हो गया है की जाँच करने के =)

भी आप इस लाइन को सही करने की जरूरत है ...

$connection->post('statuses/update', array('status' => $qtweet, 'in_reply_to_status_id' => $tweetid)); 

उद्धरण में चर न रखें

हो सकता है कि जैसे

if (empty($_POST['tweetid'])) { 
    $connection->post('statuses/update', array('status' => $qtweet)); 
} 
else { 
    $connection->post('statuses/update', array('status' => $qtweet, 'in_reply_to_status_id' => $_POST['tweetid'])); 
} 

तुम बस रूप

+0

जबकि कोड सही है, तो ऐसा कोई जवाब उत्पन्न नहीं होता है। In_reply_to ... ट्वीट भेजे जाने पर भाग पॉप्युलेट नहीं होता है। – CLiown

+0

मैंने कोड में एक त्रुटि तय की है। आपको यह सुनिश्चित करना होगा कि $ _POST ['tweetid'] सेट है – Galen

1

आपके पास 0 के डिफ़ॉल्ट मान के साथ हर समय छिपे हुए फ़ील्ड हो सकते हैं। फिर अपने क्लिक क्लोजर उपयोग में छिपे हुए फ़ील्ड का मान प्राप्त करें और इसे अपने AJAX पोस्ट में सबमिट करें।

PHP नियंत्रक तब पोस्ट मूल्य को देख सकता है, यदि यह 0 है तो इसे स्थिति अद्यतन के रूप में twitters api को पोस्ट बनाना चाहिए। जब यह 0 से अधिक है तो पोस्ट पोस्ट से प्राप्त मूल्य के साथ 'in_reply_to_status' संपत्ति को शामिल करने के लिए पोस्ट बनाएं।

फिर आपके "उत्तर" लिंक में कुछ जेएस उचित आईडी के साथ उस छिपे हुए फॉर्म तत्व को अपडेट करने के लिए होगा।

हालांकि यह सुनिश्चित नहीं है कि पोस्ट को एपीआई के लिए पोस्ट कैसे बनाया जाए। उम्मीद है कि यह कुछ मदद करता है।

0

मुझे लगता है कि एक ट्वीट के की आईडी डाल करने के लिए है कुछ समस्या है इस स्निपेट में

'in_reply_to_status_id => $tweetid' 

यह

'in_reply_to_status_id' => $tweetid 

उसके अलावा होना चाहिए गैलेन के answer लायक विचार है।

0

यहां कुछ PHP है जिसमें in_reply_to_status_id शामिल होगा यदि $_POST['tweetid'] खाली नहीं है।

<?php 
$options = array(); 
$options['status'] = $_POST['tweet']; 
if (!empty($_POST['tweetid']) { 
    $options['in_reply_to_status_id'] = $_POST['tweetid']; 
} 
$connection->post('statuses/update', $options); 

ट्विटर एपीआई के साथ एक अंतिम मुद्दा यह है कि उत्तरों में उत्तर देने वाले उपयोगकर्ता का स्क्रीन_नाम होना चाहिए। तो अगर @bob @ sarah का जवाब दे रहा है तो @sarah$_POST['tweet'] के भीतर निहित होना चाहिए। यह स्क्रीन_नाम उस टेक्स्टबॉक्स में शामिल किया जाना चाहिए जिसमें उपयोगकर्ता उत्तर टाइप कर रहा है।

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