Twitter OAuth 显示时间线而非推文

问题描述 投票:0回答:1

任何人都知道我如何调整本网站 (http://www.ethnecity.church.ly/) 中使用的 WordPress 主题中的设置,以使 Twitter 部分(靠近页面左下角)显示推文该帐户而不是 Twitter 帐户的时间线?注意:该插件正在使用 OAuth...我只是不知道如何告诉它显示推文而不是时间线。

我相信这是显示 Twitter 信息的代码:

<?php
$user_screen_name = 'ethnecity';
$user_full_name = '(removed)';

$settings = array(
'consumer_key' => '(removed)',
'consumer_secret' => '(removed)',
'access_token' => '(removed)',
'access_token_secret' => '(removed)');

$api_url = 'https://api.twitter.com/1.1/statuses/home_timeline.json';

$api_params = array(
'count' => 40,
'contributor_details' => 'false',
'include_entities' => 'false');

// OAuth:

function oauth_encode($data){
if(is_array($data)){
return array_map('oauth_encode', $data);
} else if(is_scalar($data)) {
return str_ireplace(array('+', '%7E'), array(' ', '~'), rawurlencode($data));
} else {
return '';
}}

// OAuth base settings

$oauth_params = array(
'oauth_consumer_key' => $settings['consumer_key'],
'oauth_nonce' => md5(microtime() . mt_rand()),
'oauth_signature_method' => 'HMAC-SHA1',
'oauth_timestamp' => time(),
'oauth_token' => $settings['access_token'],
'oauth_version' => '1.0',
);

// Sign OAuth params

$sign_params = array_merge($oauth_params, $api_params);

uksort($sign_params, 'strcmp');

foreach ($sign_params as $k => $v) {
$sparam[] = oauth_encode($k) . '=' . oauth_encode($v);
}
$sparams = implode('&', $sparam);

$base_string = 'GET&' . oauth_encode($api_url) . '&' . oauth_encode($sparams);

$signing_key = oauth_encode($settings['consumer_secret']) . '&' .     oauth_encode($settings['access_token_secret']);

$oauth_params['oauth_signature'] = oauth_encode(base64_encode(hash_hmac('sha1', $base_string,     $signing_key, TRUE)));


// Set Authorization header:

uksort($oauth_params, 'strcmp');

foreach ($oauth_params as $k => $v) {
$hparam[] = $k . '="' . $v . '"';
}

$hparams = implode(', ', $hparam);

$headers = array();
$headers['Expect'] = '';
$headers['Authorization'] = 'OAuth ' . $hparams;

foreach ($headers as $k => $v) {
$curlheaders[] = trim($k . ': ' . $v);
}

// Format params:

foreach ($api_params as $k => $v) {
$rparam[] = $k . '=' . $v;
}
$rparams = implode('&', $rparam);


// echo "curl --get '" . $api_url . "' --data '" . $rparams . "' --header 'Authorization:         OAuth " . $hparams . "' --verbose" . PHP_EOL;


// GET:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url . '?' . $rparams);
curl_setopt($ch, CURLOPT_HTTPHEADER, $curlheaders);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10 );

$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$info = curl_getinfo($ch);
$error = curl_error($ch);
$errno = curl_errno($ch);
curl_close($ch);


function get_twitterfeeds(){
global $code; global $response;

if($code != 200){

//echo 'Error' . PHP_EOL;
//echo $code . PHP_EOL;
//print_r($response);
//print_r($info);

} else {
 $all = json_decode($response, true);
 //echo '<pre />';
// print_r($all);
 //exit;
return $all;
}

}




?>
php twitter oauth
1个回答
1
投票

您的代码应该修改以检索用户的时间线。根据当前代码,它应该只返回时间线上存在的推文。

如果您只需要您的或特定用户的提要,则应以更改资源 URL 的方式修改您的代码。

    $api_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
    $api_params = array(
                 'screen_name' => 'ethnecity'
                 'count' => 40,
                 'contributor_details' => 'false',
                  'include_entities' => 'false'
                 );

请验证文档https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline

© www.soinside.com 2019 - 2024. All rights reserved.