In den letzten Wochen hatte ich in einem kurzen Tutorial beschrieben, wie man mit PHP-Bordmitteln ohne SDKs und Frameworks eine Twitter direct message bzw. Tweets verschicken kann. Wie John richtig in einer Mail geschrieben hat geht mein Code nur mit method=“POST“. Manchmal ist aber von der Twitter API ein GET vorgeschrieben, z. B. wenn man auslesen möchte, welchen andere Twitter-User einen erwähnt haben (mentions). Deshalb hier die Info, wie es auch mit GET geht:
#!/usr/local/bin/php5 <?php // Tutorial: Twitter via OAuth mit PHP Bordmitteln echo "OAuth Tutorial"; echo "nn"; // OAuth Tokens User $accesstoken = "???"; $accesssecret = "???"; // OAuth Keys App $consumerkey ="???"; $consumerkeysecret="???"; // 1. Beispiel direct message an Simon_A_Frank // $APIurl = "https://api.twitter.com/direct_messages/new.xml"; // $params="user=Simon_A_Frank&text="; // doppelt codieren, sonst gehen Umlaute, Sonder und Leerzeichen nicht // $params.=rawurlencode(utf8_encode("Hallöchen Simon wie geht's?")); // $reqmethod = "POST"; // 2. Beispiel: Einen Tweet versenden // $APIurl = "http://api.twitter.com/1/statuses/update.xml"; // $params ="trim_user=true&status=". // rawurlencode(utf8_encode("@Simon_A_Frank ok, wunderbar!")); // $reqmethod = "POST"; // 3. Beispiel: Mit method=get Mentions lesen $APIurl = "http://api.twitter.com/1/statuses/mentions.xml"; $params ="trim_user=true&count=5"; $reqmethod = "GET"; // Request bauen ... $srequest="oauth_consumer_key=".$consumerkey; $srequest.="&oauth_nonce=".rand(10000001,99999999); $srequest.="&oauth_signature_method=HMAC-SHA1"; $srequest.="&oauth_timestamp=" . time(); $srequest.="&oauth_token=" . $accesstoken; $srequest.="&oauth_version=1.0"; if ($params!="") { $srequest.="&".$params; } // Alle Parameter müssen sortiert sein $sr=explode("&",$srequest); sort($sr); $srequestSorted=implode("&",$sr); // Basestring und Key: $key=$consumerkeysecret."&".$accesssecret; $basestring=strtoupper($reqmethod)."&".rawurlencode($APIurl). "&".rawurlencode($srequestSorted); // Signatur erzeugen $sig=rawurlencode(base64_encode(hash_hmac('sha1', $basestring, $key, true))); // Signatur einfügen - für den Request muss diese nicht sortiert sein $srequest.="&oauth_signature=$sig"; // Der Request ist fertig und sieht so aus: echo "nRequest: $srequestnn"; // POST oder GET? if ($reqmethod=="POST") { $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $srequest ) ); } else { $opts = array('http' => array( 'method' => 'GET' ) ); $APIurl=$APIurl."?".$srequest; } // mit file_get_contents versenden $result = file_get_contents($APIurl, false, stream_context_create($opts)); // Das Ergebnis ausgeben echo "nResult:n" . $result; echo "n... das war's!n"; ?>
P.S.
Probleme? Fragen? Anregungen? Ich helfe jederzeit und gerne – einfach einen Kommentar oder Mail schreiben, die Antwort kommt schnellstmöglich. Unternehmen, die Unterstützung, Beratung oder Schulung bei der API- oder Webprogrammierung, der Social-Media-Entwicklung oder dem Social-Media-Management benötigen finden zudem entsprechende Angebote meiner Firma auf der Website www.Frank-IT-Beratung.de
Moin Moin, machst Du nochmal was für die API v2 fertig ? 🙂
Danke der Nachfrage, aber leider ist das nicht geplant, ich habe es leider seit vielen Jahren nicht mehr geschafft, neue Artikel für diesen Blog zu schreiben, da mir leider die Zeit fehlt!
Sorry, dieser Artikel war versehentlich einige Tage offline.