2013-06-16 8 views
0

PHP에 익숙하지 않아서 어리석은 질문 일지 모르지만 나는 성공하지 못해서 그것을 스스로 알아 내려고 노력했습니다. , 액세스를 작동하지 않았다 배열에 객체를 캐스팅, 나는 데이터에 액세스 할 수있는 방법을 찾을 수 없습니다Zend를 사용하여 statusUserTimeline (twitter)의 응답에 액세스하는 방법은 무엇입니까?

[jsonBody:protected] => Array 
     (
      [0] => stdClass Object 
       (
        [created_at] => Sat Jun 15 08:30:00 +0000 2013 
        [id] => 3.4582047273635E+17 
        [id_str] => 345820472736354304 
        [text] => In Saturday Flashback, watch #FFC take a huge step towards  the Premier League with a vital win at Blackburn in 2001. http://t.co/iRWPDg7NmK 
        [source] => web 
        [truncated] => 
        [in_reply_to_status_id] => 
        [in_reply_to_status_id_str] => 
        [in_reply_to_user_id] => 
        [in_reply_to_user_id_str] => 
        [in_reply_to_screen_name] => 
        [user] => stdClass Object 
         (
          [id] => 22903812 
          [id_str] => 22903812 
          [name] => Fulham Football Club 
          [screen_name] => FulhamFC 
          [location] => Fulham, London, England 
          [description] => The Official Twitter page of Fulham Football Club, London, England. http://t.co/GWMBbvhEfT #ffC#fulhamfC#coyw #bytheriver 
          [url] => http://t.co/qHWTVnXr2E 
          [entities] => stdClass Object 
           (
            [url] => stdClass Object 
             (
              [urls] => Array 
               (
                [0] => stdClass Object 
                 (
                  [url] => http://t.co/qHWTVnXr2E 
                  [expanded_url] => http://www.fulhamfc.com 
                  [display_url] => fulhamfc.com 
                  [indices] => Array 
                   (
                    [0] => 0 
                    [1] => 22 
                   ) 

                 ) 

               ) 

             ) 

            [description] => stdClass Object 
             (
              [urls] => Array 
               (
                [0] => stdClass Object 
                 (
                  [url] => http://t.co/GWMBbvhEfT 
                  [expanded_url] => http://fulhamfc.com 
                  [display_url] => fulhamfc.com 
                  [indices] => Array 
                   (
                    [0] => 68 
                    [1] => 90 
                   ) 

                 ) 

               ) 

             ) 

           ) 

          [protected] => 
          [followers_count] => 139667 
          [friends_count] => 12662 
          [listed_count] => 2083 
          [created_at] => Thu Mar 05 10:10:44 +0000 2009 
          [favourites_count] => 16 
          [utc_offset] => 0 
          [time_zone] => London 
          [geo_enabled] => 
          [verified] => 1 
          [statuses_count] => 11680 
          [lang] => en 
          [contributors_enabled] => 
          [is_translator] => 
          [profile_background_color] => 000000 
          [profile_background_image_url] => http://a0.twimg.com/profile_background_images/837307227/ac1a6a4096d1b8cda9276d169b57b889.jpeg 
          [profile_background_image_url_https] => https://si0.twimg.com/profile_background_images/837307227/ac1a6a4096d1b8cda9276d169b57b889.jpeg 
          [profile_background_tile] => 
          [profile_image_url] => http://a0.twimg.com/profile_images/3178979663/5ef1b3abec0dec9e160491cb62c835f5_normal.jpeg 
          [profile_image_url_https] => https://si0.twimg.com/profile_images/3178979663/5ef1b3abec0dec9e160491cb62c835f5_normal.jpeg 
          [profile_banner_url] => https://pbs.twimg.com/profile_banners/22903812/1348050191 
          [profile_link_color] => 0084B4 
          [profile_sidebar_border_color] => FFFFFF 
          [profile_sidebar_fill_color] => DDEEF6 
          [profile_text_color] => 333333 
          [profile_use_background_image] => 1 
          [default_profile] => 
          [default_profile_image] => 
          [following] => 
          [follow_request_sent] => 
          [notifications] => 
         ) 

        [geo] => 
        [coordinates] => 
        [place] => 
        [contributors] => 
        [retweet_count] => 9 
        [favorite_count] => 5 
        [entities] => stdClass Object 
         (
          [hashtags] => Array 
           (
            [0] => stdClass Object 
             (
              [text] => FFC 
              [indices] => Array 
               (
                [0] => 29 
                [1] => 33 
               ) 

             ) 

           ) 

          [symbols] => Array 
           (
           ) 

          [urls] => Array 
           (
            [0] => stdClass Object 
             (
              [url] => http://t.co/iRWPDg7NmK 
              [expanded_url] => http://ow.ly/m3Ljl 
              [display_url] => ow.ly/m3Ljl 
              [indices] => Array 
               (
                [0] => 117 
                [1] => 139 
               ) 

             ) 

           ) 

          [user_mentions] => Array 
           (
           ) 

         ) 

        [favorited] => 
        [retweeted] => 
        [possibly_sensitive] => 
        [lang] => en 
       ) 

     ) 

: 내가 젠드 프레임 워크를 사용하여 트위터에서 일부 정보를 얻기 위해 노력하고,이 응답입니다 직접 개체로도 작동하지 않았다. 제발 조언.

예컨대 : 그들은 며칠 전에 API를 변경

echo $response['0']['text']; 
echo $response->0->text; 

답변

-1

. 다음과 같이하십시오 :

$accessToken = new Zend_Oauth_Token_Access(); 
$accessToken->setToken($config['twitter']['accessToken']); 
$accessToken->setTokenSecret($config['twitter']['accessTokenSecret']); 

$twitter = new Zend_Service_Twitter(
array(
        'accessToken' => $accessToken, 
        'oauthOptions' => array(
         'consumerKey' => $config['twitter']['consumerKey'], 
         'consumerSecret' => $config['twitter']['consumerSecret'] 
        ) 
       ) 
      ); 

      $response = $twitter->statuses->statusesUserTimeline(array('count' => $config['twitter']['posts'])); 
      $response = $response->toValue(); 

... 그리고 응답으로 게시물이 멋진 배열이 있습니다.

0

클래스 외부의 개체 또는 해당 자식의 보호 된 속성에 액세스 할 수 없습니다.

jsonBody와 rawBody에 액세스하려면 객체에 따라 toValue() 및 getRawResponse() 메서드를 사용해야합니다. 메소드는 Zend/Service/Twitter/Response.php에 정의되어 있습니다.

예 :

$response = $response->toValue(); 
echo $response[0]->text; 

는 개체의 모든 보호 된 속성에 액세스하기 위해 Zend_Service_Twitter_Response를 확장하는 클래스를 만드는 것입니다 할 수있는 다른 방법. 이 접근법은 상속이 어떻게 작동 하는지를 과소 평가하기위한 것입니다.

예 :

class Plugin_TwitterSearch extends Zend_Service_Twitter_Response 
{ 
    public function __construct() {} 
    public function search() { 
     $twitter = new Zend_Service_Twitter($options); //$options - your consumer and access data 
     $twits = $twitter->search->tweets('#zendframework', array('count' => 100)); 
     var_dump($twits->jsonBody); 
     var_dump($twits->rawBody); 
     exit; 
    } 
}