it-swarm.com.de

Einrichten der Twitter-API, Abrufen der letzten Tweets

Ich bin völlig neu in der Verwendung von Twitter im Allgemeinen und habe in keinem Projekt "neueste Tweets" eingebettet. Ich versuche lediglich, die 3-4 neuesten Tweets in die Fußzeile der Website einzubetten, ohne dass zusätzliche Funktionen erforderlich sind. Ich habe seit geraumer Zeit geforscht, wie das geht und habe einige Probleme.

Ich habe dem Projekt den folgenden Codeausschnitt hinzugefügt, der recht gut funktioniert. Ich bin mir jedoch nicht sicher, wie ich den Ausschnitt aktualisieren soll, sodass mein Twitter-Konto anstelle desjenigen verwendet wird, mit dem er eingerichtet ist.

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

Außerdem lese ich immer wieder, dass die am häufigsten verwendete Twitter-API bald nicht mehr funktioniert, da Twitter möchte, dass die Benutzer ihre eigenen verwenden, im Gegensatz zu Drittanbietern.

Ich bin mir nicht sicher, wie ich fortfahren soll. Über diesbezügliche Vorschläge würde ich mich sehr freuen. Um es noch einmal zusammenzufassen, ich versuche nur, die 3-4 neuesten Tweets von meinem Konto zu holen.

vielen Dank im Voraus!

27
AnchovyLegend

Sie möchten diese Client-Seite also WIRKLICH nicht mehr ausführen. (Ich habe gerade zahlreiche Dokumente durchgesehen und Entwickler schlagen vor, alles zu tun oAuth serverseitig)

Was musst du machen:

Zuerst : Melde dich bei https://dev.Twitter.com an und erstelle eine neue Bewerbung.

Zweitens : HINWEIS: Ihr Consumer Key/Secret zusammen mit dem Access Token/Secret

Drittens : Download Twitter oAuth Library (In diesem Fall habe ich die PHP Bibliothek https://github.com/abraham/twitteroauth , zusätzliche Bibliothek befindet sich hier: https://dev.Twitter.com/docs/Twitter-libraries )

Viertens : (Wenn Sie PHP verwenden) Stellen Sie sicher, dass cURL aktiviert ist, wenn Sie auf einer LAMPE laufen, ist hier der Befehl, den Sie benötigen:

Sudo apt-get install php5-curl

Fünftens : Erstellen Sie eine neue PHP) -Datei und fügen Sie Folgendes ein: Vielen Dank an 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   
?>

Und boom , du bist fertig. Ich weiß, dass dies keine reine js-Lösung ist, aber sie lesen erneut die neuen Twitter API 1.1-Dokumente durch, die sie WIRKLICH nicht wollen, dass Sie diese Client-Site erstellen. Hoffe das hilft!

62
Starboy

So erhalten Sie die letzten Tweets eines Benutzers mit der Kernfunktionalität PHP (keine CURL- oder Twitter oAuth Bibliothek erforderlich)):

  1. Registrieren Sie Ihre App/Webseite https://apps.Twitter.com (Möglicherweise müssen Sie auch die Handynummer Ihres persönlichen Kontos überprüfen.)

  2. Hinweis Consumer Key und 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);
    

Getestet mit XAMPP für Windows und Centos6 Standardinstallation (PHP 5.3)

Das wahrscheinlichste Problem dabei ist, dass openssl in der php.ini nicht aktiviert ist

Um dies zu beheben, überprüfen Sie, ob die Zeile extension = php_openssl.dll oder extension = php_openssl.so in der Datei php.ini vorhanden und unkommentiert ist

25
Rauli Rajande