Настройка Twitter API, получение последних твитов

Я совершенно новичок в использовании Twitter в целом и никогда не внедрял "последние твиты" в любой проект. Я просто пытаюсь встроить 3-4 новейших твита в нижний колонтитул сайта без дополнительных функций функциональности. Я уже довольно давно изучаю, как это сделать, и у меня возникли некоторые проблемы.

Я добавил следующий фрагмент кода в проект, который работает довольно хорошо, однако я не уверен, как обновить фрагмент, поэтому он использует мою учетную запись Twitter одного она настроена.

    <div id="twitter_update_list">
    </div>
    <script type="text/javascript" src="http://api.twitter.com/1/statuses/user_timeline.json?screen_name=stackoverflow&include_rts=true&count=4&callback=twitterCallback2">
    </script>

кроме того, я продолжаю читать, что наиболее часто используемый API Twitter скоро перестанет работать, потому что Twitter хочет, чтобы люди использовали свои собственные, а не сторонние.

Я не уверен, как продолжить отсюда. Я был бы весьма признателен за любые предложения в этой связи. Напомним, все, что я пытаюсь сделать, это захватить последние твиты 3-4 из моей учетной записи.

заранее большое спасибо!

3 ответов


таким образом, вы действительно не хотите больше делать эту клиентскую сторону. (Просто прошел через множество документов, и разработчики предлагают сделать все OAuth на стороне сервера)

что нужно делать:

первый: зарегистрируйтесь на https://dev.twitter.com, и сделать новое приложение.

второй: Примечание: ваш потребительский ключ / секрет вместе с токеном доступа / секрет

третий: загрузите библиотеку Twitter oAuth (в этом случае Я использовал библиотеку PHPhttps://github.com/abraham/twitteroauth, дополнительная библиотека, расположенная здесь:https://dev.twitter.com/docs/twitter-libraries)

четвертый: (при использовании php) убедитесь, что cURL включен, если вы работаете на лампе, вот команда, которая вам нужна:

sudo apt-get install php5-curl

пятый: создайте новый PHP-файл и вставьте следующее: Спасибо тому Эллиоту http://www.webdevdoor.com/php/authenticating-twitter-feed-timeline-oauth/

<?php
session_start();
require_once("twitteroauth/twitteroauth/twitteroauth.php"); //Path to twitteroauth library you downloaded in step 3

$twitteruser = "twitterusername"; //user name you want to reference
$notweets = 30; //how many tweets you want to retrieve
$consumerkey = "12345"; //Noted keys from step 2
$consumersecret = "123456789"; //Noted keys from step 2
$accesstoken = "123456789"; //Noted keys from step 2
$accesstokensecret = "12345"; //Noted keys from step 2

function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) {
  $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret);
  return $connection;
}

$connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret);

$tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets);

echo json_encode($tweets);
echo $tweets; //testing remove for production   
?>

бум, ты молодец. я знаю, что это не чистое решение js, но снова читая новые документы Twitter API 1.1, они действительно не хотят, чтобы вы делали этот клиентский сайт. Надеюсь, это помогает!


Как получить последние несколько твитов пользователя только с основной функциональностью PHP (не требуется библиотека CURL или Twitter oAuth):

  1. регистрация приложения/веб-страницы https://apps.twitter.com (Вам может понадобиться, чтобы проверить вашего лицевого счета мобильного телефона тоже)

  2. Примечание потребительский ключ и потребительский секрет

  3. PHP код:

    // auth parameters
    $api_key = urlencode('REPLACEWITHAPPAPIKEY'); // Consumer Key (API Key)
    $api_secret = urlencode('REPLACEWITHAPPAPISECRET'); // Consumer Secret (API Secret)
    $auth_url = 'https://api.twitter.com/oauth2/token'; 
    
    // what we want?
    $data_username = 'Independent'; // username
    $data_count = 10; // number of tweets
    $data_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?tweet_mode=extended';
    
    // get api access token
    $api_credentials = base64_encode($api_key.':'.$api_secret);
    
    $auth_headers = 'Authorization: Basic '.$api_credentials."\r\n".
                    'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'."\r\n";
    
    $auth_context = stream_context_create(
        array(
            'http' => array(
                'header' => $auth_headers,
                'method' => 'POST',
                'content'=> http_build_query(array('grant_type' => 'client_credentials', )),
            )
        )
    );
    
    $auth_response = json_decode(file_get_contents($auth_url, 0, $auth_context), true);
    $auth_token = $auth_response['access_token'];
    
    // get tweets
    $data_context = stream_context_create( array( 'http' => array( 'header' => 'Authorization: Bearer '.$auth_token."\r\n", ) ) );
    
    $data = json_decode(file_get_contents($data_url.'&count='.$data_count.'&screen_name='.urlencode($data_username), 0, $data_context), true);
    
    // result - do what you want
    print('<pre>');
    print_r($data);
    

протестировано с XAMPP для Windows и Centos6 по умолчанию установка (PHP 5.3)

наиболее вероятной проблемой с этим может быть то, что openssl не включен в php.ini

чтобы исправить, проверьте, если расширение=php_openssl.dll или расширение=php_openssl.таким образом, строка присутствует и не раскомментирована в php.ini


на самом деле twitter имеет много ограничений, так как есть много конкурса от таких компаний, как Nike и другие. Чтение твита ограничено в том смысле, что если Вы читаете через последний API, это на самом деле немного отстает от времени.

Они также контролировали задержку DM, что означает, что вы не можете DM мгновенно, даже если вы это сделаете, другая сторона получит только после X количество времени. Если вы делаете через скрипт, и даже если вы пытаетесь DM много с одного ip twitter будет просто заблокируйте вас.