0

このサイト ( 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;
}

}




?>
4

1 に答える 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

于 2014-01-07T10:29:00.113 に答える