2015-10-31 104 views
0

我使用Twitter的API,并试图获取使用Twitter的API获取用户的timeline帖子是新手。我已经试过这段代码来实现这一点。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; 
} 

$url = "https://api.twitter.com/1.1/statuses/home_timeline.json"; 
$oauth_access_token = "ACCESS TOKEN"; 
$oauth_access_token_secret = "ACCESS TOKEN SECRET"; 
$consumer_key = "APP KEY"; 
$consumer_secret = "APP KEY SECRET"; 

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

//print it out 
echo "<pre>"; print_r ($twitter_data); 

我已经找到了this post

代码任何帮助将非常感激。

感谢

回答

0

您正在使用您的访问令牌和访问令牌密钥为您的帐户,你从你的Twitter应用程序设置页面了,所以你已经登录,这是所有的用户身份验证数据需要通过API访问您的帐号。

仅用于阅读别人的受保护数据,您需要访问令牌和他们的帐户,您可以通过实现的Twitter的OAuth登录流程获取秘密(重定向到Twitter,并要求他们给予你的应用程序,访问他们的帐户)。

相关问题