Posted on Juni 2, 2009 by Benni
Viele TwitterUser versuchen möglichst viele User mit gleichen Interesse zu verfolgen. Dies alles manuell per Hand zu machen ist sehr Zeit aufwendig und anstrengend, weshalb ich mir ein PHP-Script gebaut habe, was dies automatisch tut.
Als erstes müssen die User-Daten sowie die Such-Variable festgelegt werden.
1
2
3
| $username = $_GET['user'];
$password = $_GET['pw'];
$search = $_GET['search']; |
Sollen die Parameter später nicht über die URL gefüllt werden, so muss das jeweilige $_GET['*']; durch ‘*’; ersetzt werden.
Um an die User mit gleichen Datensätzen zukommen, müssen wir erst mal ein XML-Generieren welches die Gewünschten Daten beinhaltet.
1
| $result = simplexml_load_file('http://search.twitter.com/search.atom?q='.$search.'&rpp=30'); |
Hier wird einfach nur nach dem Wort aus $search gesucht und das ganze in die Variable $result gespeichert, wobei die rpp=30 die Ergebnisse auf 30 begrenzt.
Um nun die 30 Einträge auszulesen verpacken wir das ganze in eine Schleife, geben die Twitter-API Adresse sowie den CURL Befehl an und fertig ist das automatische “Follow Script”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| $count = 0;
while($count < 30)
{
$follow = substr($result->;entry[$count]->;author[0]->;uri, 19);
// The twitter API address
$url = 'http://twitter.com/friendships/create.xml';
// Set up and execute the curl process
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "screen_name=$follow");
curl_setopt($curl_handle, CURLOPT_USERPWD, "$username:$password");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
// check for success or failure
if (empty($buffer)) {
echo 'message';
} else {
echo 'success
';
}
$count++;
} |
Das Script wird mit folgendem befehl aufegrufen. (AChtung: meine Script Datei heißt followscript.php)
http://www.host.de/followscript.php?user=Twitteruser&pw=Userpw&search=Suchbegriff
So das war’s! Solltet ihr Fehler finden oder andere Unstimmigkeiten meldet mir diese bitte, vielen dank!
Posted on Mai 13, 2009 by Benni
Ich gehöre zu denen Leuten die ein Facebook, MeinVZ, …. etc. Profil haben. In fast jedem Social Network hat man die Möglichkeit einen “Was ich gerade mache”-Status mit 140 Zeichen zu hinterlassen. Aber dennoch ist es doof, diese in jedem manuell zu tun. Die beste Lösung für mich ist, dass alles Synchron von Twitter ausgeht.
Es gibt zwei Möglichkeiten seinen Twitter Status in MeinVZ, StudiVZ oder SchülerVZ zu Updaten.
Möglich ist dies durch eine Schwachstelle(?) in der Mobilen VZ-Anwendung. Die erste Möglichkeit ist das man den Service von Mehrblog benutzt. Wer jedoch Angst hat seine VZ und Twitter Daten woanders zu hinterlegen, für den kommt Möglichkeit zwei, ein PHP Script von wuestenigel in Betracht.
Login Informationen
$loginStudi = “xxx“; // Deine VZ Loginname
$pwStudi = “xxx“; // Dein VZ Passwort
$loginTwitter = “xxx“; // Dein Twitter Benutzername
Letzten Twitter Status auslesen
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “http://twitter.com/statuses/user_timeline/$loginTwitter.json””);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$buffer = curl_exec($ch);
$json = json_decode($buffer);
$text = $json[0]->text;
Neue Session generieren
$url = “http://m.studivz.net/op/studivz/de/mcat/login/“; // Fuer andere VZ’s bitte das Studivz durch meinvz oder schuelervz ersetzen
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, “Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en)“);
$buffer = curl_exec($ch);
$needle = “/op/studivz/de/mcat/login/;jsessionid=“;
$session = substr($buffer,strpos($buffer,$needle)+strlen($needle),32);
Einloggen
$url = “http://m.studivz.net/op/studivz/de/mcat/login/;jsessionid=“.$session; // Fuer andere VZ’s bitte das Studivz durch meinvz oder schuelervz ersetzen
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, “username=$loginStudi&password=$pwStudi“);
$buffer = curl_exec($ch);
Aktualisierung durchführen
$url = “http://m.studivz.net/op/studivz/de/mcat/status/senden/;jsessionid=“.$session; // Fuer andere VZ’s bitte das Studivz durch meinvz oder schuelervz ersetzen
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS, “text=$text“);
$buffer = curl_exec($ch);
Dies Speichert man alles in eine PHP-Datei und lässt die regelmäßig von einem Cronjob ausführen. Wer keinen Cronjob hat, für den kommt Cronjob.de in Frage
Posted on April 30, 2009 by Benni
Mal wieder ein aktuelles Problem aus dem alttag. Eine Webseite wird mittel .htaccess geschützt, wie kann man trotzdem an geschützte PHP-Seiten rankommen? Auf der Suche nach der Funktion bin ich auf folgendes Script gestoßen welches Ohne Probleme funktioniert und die .htaccess Anmeldung übernimmt.
Konfiguration der Parameter
1
2
3
4
| $host = "domain.tld"; // Dein Host, z.B. admin.server.de oder geheim.de
$url = "/geheim/index.html"; // Die URI, auf die dann zugegriffen werden soll
$user = "test"; // Benutzername vom .htaccess
$pw = "testpwd"; // Passwort vom .htaccess |
Der eigentliche Script Inhalt
1
2
3
4
5
6
7
8
9
| header("Content-type: text/html");
$sock = fsockopen($host, 80, $errno, $errstr, 5); // 80 = Port, 5 = Timeout
fputs($sock, "GET ".$url." HTTP/1.1\r\n");
fputs($sock, "Host: ".$host."\r\n");
fputs($sock, "Authorization: Basic ".base64_encode($user.":".$pw)."\r\n");
fputs($sock, "Connection: close\r\n\r\n");
while(!feof($sock))
echo fgets($sock, 4096); // Antwort lesen
fclose($sock); |