Zend Framework: Nasıl twitter benim durumlarını almak için

3 Cevap php

Sitemde twitter benim son 5 veya 10 durumlarını göstermek istiyorum. Şimdilik benim twitter durumlarını almak için aşağıdaki kodu kullanıyorum.

public function getOrganizationsTwitterUpdates(){

     $twitter = new Zend_Service_Twitter('myusername', 'mypassword');
     $response = $twitter->status->userTimeline();
     return $response; 
}

Ve ben kod yukarıdaki yanıtı şu var.

Zend_Rest_Client_Result Object ( [_sxml:protected] => SimpleXMLElement Object ( [@attributes] => Array ( [type] => array ) [status] => Array ( [0] => SimpleXMLElement Object ( [created_at] => Wed Dec 30 11:02:13 +0000 2009 [id] => 7192975030 [text] => This is my 2nd tweet. [source] => web [truncated] => false [in_reply_to_status_id] => SimpleXMLElement Object ( ) [in_reply_to_user_id] => SimpleXMLElement Object ( ) [favorited] => false [in_reply_to_screen_name] => SimpleXMLElement Object ( ) [user] => SimpleXMLElement Object ( [id] => 100469557 [name] => naveed [screen_name] => naveedriksof [location] => SimpleXMLElement Object ( ) [description] => SimpleXMLElement Object ( ) [profile_image_url] => http://s.twimg.com/a/1262113883/images/default_profile_6_normal.png [url] => SimpleXMLElement Object ( ) [protected] => false [followers_count] => 0 [profile_background_color] => 9ae4e8 [profile_text_color] => 000000 [profile_link_color] => 0000ff [profile_sidebar_fill_color] => e0ff92 [profile_sidebar_border_color] => 87bc44 [friends_count] => 0 [created_at] => Wed Dec 30 10:59:31 +0000 2009 [favourites_count] => 0 [utc_offset] => SimpleXMLElement Object ( ) [time_zone] => SimpleXMLElement Object ( ) [profile_background_image_url] => http://s.twimg.com/a/1262113883/images/themes/theme1/bg.png [profile_background_tile] => false [notifications] => false [geo_enabled] => false [verified] => false [following] => false [statuses_count] => 2 ) [geo] => SimpleXMLElement Object ( ) ) [1] => SimpleXMLElement Object ( [created_at] => Wed Dec 30 11:01:43 +0000 2009 [id] => 7192966364 [text] => This is my 1st tweet [source] => web [truncated] => false [in_reply_to_status_id] => SimpleXMLElement Object ( ) [in_reply_to_user_id] => SimpleXMLElement Object ( ) [favorited] => false [in_reply_to_screen_name] => SimpleXMLElement Object ( ) [user] => SimpleXMLElement Object ( [id] => 100469557 [name] => naveed [screen_name] => naveedriksof [location] => SimpleXMLElement Object ( ) [description] => SimpleXMLElement Object ( ) [profile_image_url] => http://s.twimg.com/a/1262113883/images/default_profile_6_normal.png [url] => SimpleXMLElement Object ( ) [protected] => false [followers_count] => 0 [profile_background_color] => 9ae4e8 [profile_text_color] => 000000 [profile_link_color] => 0000ff [profile_sidebar_fill_color] => e0ff92 [profile_sidebar_border_color] => 87bc44 [friends_count] => 0 [created_at] => Wed Dec 30 10:59:31 +0000 2009 [favourites_count] => 0 [utc_offset] => SimpleXMLElement Object ( ) [time_zone] => SimpleXMLElement Object ( ) [profile_background_image_url] => http://s.twimg.com/a/1262113883/images/themes/theme1/bg.png [profile_background_tile] => false [notifications] => false [geo_enabled] => false [verified] => false [following] => false [statuses_count] => 1 ) [geo] => SimpleXMLElement Object ( ) ) ) ) )

Ben 2 soru var:

Q1. Diziye nesnenin üzerinde dönüştürmek nasıl. Yukarıdaki nesnesi'nde benim iki durumlarını görebilir ama nasıl böyle değişken içine benim durumunu saklayabilirsiniz.

$firstStatus = "This is my first tweet";
$firstStatusTime = "4:30PM 12-12-09";
$secondStatus = "This is my second tweet";
$secondStatusTime = "9:30PM 12-12-09";

Q2. (Biz web'de kimsenin durumunu görebileceğiniz gibi) benim şifre olmadan benim bütün durumları alabilirsiniz. Ben RSS kullanmak istemiyorum.

3 Cevap

Sen bir bireysel kullanıcıdan durumları olsun Zend_Service_Twitter_Search yapabilirsiniz:

$twitter_search = new Zend_Service_Twitter_Search('json');
$response = $twitter_search->search('from:Username');
print_r($response);

İlk soruya cevap olarak, doğrudan alınan kod parçacığını aşağıdaki kullanabilirsiniz Zend Framework Wiki:

$twitter = new Zend_Service_Twitter($user, $pass); 

// Get public timeline 
$publicTimeline = $twitter->status->publicTimeline(); 

// Loop through results: 
foreach ($publicTimeline->status as $status) { 
    $date = $status->created_at(); 
    $text = $status->text(); 
    $user = $status->user->screen_name(); 
    echo "$date: @$user: $text<br />\n"; 
} 

Şimdi değişkenler $date, $text ve $user de yazabilirsiniz bu durumda diziler, olabilir:

$statusidx = 0;
// Loop through results: 
foreach ($publicTimeline->status as $status) { 
    $date[$statusidx] = $status->created_at(); 
    $text[$statusidx] = $status->text(); 
    $user[$statusidx] = $status->user->screen_name(); 
    $statusidx++;
    echo "$date: @$user: $text<br />\n"; 
} 

Ben bir Twitter hesabı var ve genel olarak Twitter API ile çalışan hiçbir deneyimi yok çünkü ben, ikinci soru ile size yardımcı olamam. Ama Zend Framework API sınıfı bakarsak, bunun gibi görünmüyor.

Ben gibi SimpleXML nesneleri / diziler içine dizeleri dönüştürülür ettik

($ Stroq) simplexml_load_string $ dizi = (dizi);

Bu durumda sizin için çalışacaktır eğer ben bilmiyorum. Ben bir API aldığım bir XML dizesi bir dizi almak için oldu. Hangi konuşma, sadece json olarak Twitter yem almak ve üzerinde json_decode kullanmak mümkün mü? Bu XML ile çalışma çok daha kolay olurdu.

Tweets için yol gibi Neyse, görünüyor

$firstStatusTime=$response->status[1]->created_at
$firstStatus=$response->status[1]->text

Ama elinde nesnenin kendisi ya da daha net baskı olmadan söylemek zor.

(Onlar korumalı değilseniz) Q2 için, evet, hiçbir şifre ile twitter kimsenin mesajları alabilirsiniz.