2017-08-30 27 views
0

私はmatthutchings95というユーザー名からつぶやきを得るためのtwitter APIを設定しました。このアカウントでは、テストのつぶやきで10回投稿しました。今、ページはこれらの罰金を読んでいるが、私は第2のtwitterアカウントdannybots111を作って、最初のアカウントに言及したツイートを書いた。しかし、私はscreen_nameを別のものに変更しなければならないのですか?私はこれがそのアカウントからの言及とツイートの両方をしたと思った。Twitter APIは投稿のみを投稿しています

<? 
function buildBaseString($baseURI, $method, $params) { 
    $r = array(); 
    ksort($params); 
    foreach($params as $key=>$value){ 
     $r[] = "$key=" . rawurlencode($value); 
    } 
    return $method."&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r)); 
} 

function buildAuthorizationHeader($oauth) { 
    $r = 'Authorization: OAuth '; 
    $values = array(); 
    foreach($oauth as $key=>$value) 
     $values[] = "$key=\"" . rawurlencode($value) . "\""; 
    $r .= implode(', ', $values); 
    return $r; 
} 

function returnTweet(){ 
    $oauth_access_token   = "1140776708-Z03sg5mVXqc4il9ff1EfBcbE5aycwlfslDni2Lt"; 
    $oauth_access_token_secret = "gr6RbsvIq9kUoREjVkwlOgHSwJJU7do91NpCz87PKNMOz"; 
    $consumer_key    = "Ub3R51niGzjJIFQtCDrb7tvjJ"; 
    $consumer_secret   = "T74d8SJYDET9n8T4PDI7aobNwo9M6fkmQI0hHhWd9ntzY9y5hL"; 

    $twitter_timeline   = "user_timeline"; // mentions_timeline/user_timeline/home_timeline/retweets_of_me 

    // create request 
     $request = array(
      'screen_name'  => 'matthutchings95', 
      'count'    => '3' 
     ); 

    $oauth = array(
     'oauth_consumer_key'  => $consumer_key, 
     'oauth_nonce'    => time(), 
     'oauth_signature_method' => 'HMAC-SHA1', 
     'oauth_token'    => $oauth_access_token, 
     'oauth_timestamp'   => time(), 
     'oauth_version'    => '1.0' 
    ); 

    // merge request and oauth to one array 
     $oauth = array_merge($oauth, $request); 

    // do some magic 
     $base_info    = buildBaseString("https://api.twitter.com/1.1/statuses/$twitter_timeline.json", 'GET', $oauth); 
     $composite_key   = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret); 
     $oauth_signature   = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true)); 
     $oauth['oauth_signature'] = $oauth_signature; 

    // make request 
     $header = array(buildAuthorizationHeader($oauth), 'Expect:'); 
     $options = array(CURLOPT_HTTPHEADER => $header, 
          CURLOPT_HEADER => false, 
          CURLOPT_URL => "https://api.twitter.com/1.1/statuses/$twitter_timeline.json?". http_build_query($request), 
          CURLOPT_RETURNTRANSFER => true, 
          CURLOPT_SSL_VERIFYPEER => false); 

     $feed = curl_init(); 
     curl_setopt_array($feed, $options); 
     $json = curl_exec($feed); 
     curl_close($feed); 

    return json_decode($json, true); 
} 
    $tweet = returnTweet(); 

    echo "Tweet No.1: " .$tweet[0]["text"]; 
    echo '<br><br>'; 
    echo "Tweet No.2: " .$tweet[1]["text"]; 
    echo '<br><br>'; 
    echo "Tweet No.3: " .$tweet[2]["text"]; 
    echo '<br><br>'; 
    echo '<br><br>'; 

    print_r(returnTweet()); 


?> 

答えて

1

user_timelineしかscreen_name値で指定されたユーザーによって投稿ツイートを返します。あなたはmentions_timelineを読む必要があり、その言及を見るには上記のユーザとして認証される必要があります。

関連する問題