2013-06-16 2 views
-1

API 1에서 1.1로 업데이트 한 후 더 이상 내 코드에 결과가 표시되지 않습니다. 이 포럼에서 나는 user_timeline 결과에 대한 새로운 코드 (아래)를 발견했습니다. te 링크를 https://api.twitter.com/1.1/search/tweets.json?q=test으로 변경하면 "인증 할 수 없습니다."라는 메시지가 나타납니다. 내가 틀린 게 뭐야?Twitter API 1.1 search tweets

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; 
} 

$url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; 

$oauth_access_token = "YOURVALUE"; 
$oauth_access_token_secret = "YOURVALUE"; 
$consumer_key = "YOURVALUE"; 
$consumer_secret = "YOURVALUE"; 

$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'); 

$base_info = buildBaseString($url, '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 Requests 
$header = array(buildAuthorizationHeader($oauth), 'Expect:'); 
$options = array(CURLOPT_HTTPHEADER => $header, 
        //CURLOPT_POSTFIELDS => $postfields, 
        CURLOPT_HEADER => false, 
        CURLOPT_URL => $url, 
        CURLOPT_RETURNTRANSFER => true, 
        CURLOPT_SSL_VERIFYPEER => false); 

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

$twitter_data = json_decode($json); 

답변

1

인증 데이터를 제공해야합니다. 이 페이지를보십시오 page. 인증이 필요합니다. OAuth 도구를 사용하여 앱을 선택하고 서명을 생성하여 리소스를 올바르게 호출합니다.