Configurer L'API Twitter, obtenir les derniers Tweets

Je suis tout à fait nouveau à L'utilisation de Twitter en général et n'ai jamais intégré "derniers tweets" sur un projet. J'essaie simplement d'intégrer les 3-4 derniers tweets sur le pied de page du site sans fonctionnalités supplémentaires. J'ai fait des recherches sur comment le faire pour un certain temps maintenant et d'avoir quelques ennuis.

j'ai ajouté le code suivant snippet au projet, qui fonctionne assez bien, cependant, je ne suis pas sûr comment mettre à jour le snippet donc il utilise mon compte Twitter à la place de celui avec qui il est installé.

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

de plus, je continue de lire que L'API Twitter la plus utilisée cessera bientôt de fonctionner parce que Twitter veut que les gens utilisent la leur, par opposition à une tierce partie.

je ne suis pas sûr de savoir comment procéder à partir d'ici. J'apprécierais beaucoup toute suggestion à cet égard. Pour récapituler, tout ce que j'essaie de faire est de saisir les 3-4 derniers tweets de mon compte.

merci beaucoup d'avance!

27
demandé sur AnchovyLegend 2013-06-11 21:05:25

3 réponses

donc vous ne voulez vraiment plus faire ce côté client. (Juste allé à travers de nombreux documents, et les devs suggèrent de faire tout oAuth côté serveur)

Ce que vous devez faire:

Premier: inscrivez-vous sur https://dev.twitter.com, et de faire une nouvelle demande.

Deuxième: REMARQUE: Votre Clé client / Secret avec Jeton d'Accès / Secret

Troisième: Télécharger Twitter oAuth Bibliothèque (Dans ce cas J'ai utilisé la Bibliothèque PHP https://github.com/abraham/twitteroauth , bibliothèque supplémentaires trouve ici: https://dev.twitter.com/docs/twitter-libraries)

Quatrième: (si vous utilisez php) assurez-vous que cURL est activé, Si vous utilisez une lampe voici la commande dont vous avez besoin:

sudo apt-get install php5-curl

Cinquième: créer un nouveau fichier PHP et insérer ce qui suit: merci à Tom Elliot 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   
?>

et boom, c'est fini. je sais que ce n'est pas une solution js pure, mais en relisant les nouveaux documents de L'API 1.1 de Twitter, ils ne veulent vraiment pas que vous fassiez ce site client. Espérons que ce aide!

61
répondu Starboy 2014-07-18 19:20:10

comment obtenir les derniers tweets de l'utilisateur avec la fonctionnalité PHP de base SEULEMENT (PAS de bibliothèque de oAuth CURL ou Twitter nécessaire):

  1. Inscrivez votre application/page web https://apps.twitter.com (Vous pouvez avoir besoin de vérifier votre compte personnel mobile nombre trop)

  2. Note Consumer Key and Consumer Secret

  3. PHP Code:

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

Testé avec XAMPP pour Windows et Centos6 par défaut installation (PHP 5.3)

le problème le plus probable est qu'openssl n'est pas activé en php.ini

pour corriger, vérifiez si extension=php_openssl.dll ou extension=php_openssl.donc la ligne est présente et non implémentée en php.ini

22
répondu Rauli Rajande 2018-01-17 11:05:20

en fait twitter a beaucoup de restrictions, comme il ya beaucoup de concours de sociétés comme Nike et d'autres. La lecture de tweet est limitée dans le sens où si vous lisez à travers la dernière API c'est en fait un peu en retard.

ils ont également contrôlé le délai DM ce qui signifie que vous ne pouvez pas DM instantanément, même si vous le faites, L'autre partie ne recevra qu'après X quantité de temps. Si vous faites par le biais de script, et même si vous essayez de DM beaucoup d'une seule ip twitter va simplement vous BLOQUER.

-15
répondu Hakes 2013-09-05 10:59:20