Posts Tagged update profile

Twitter Profil Image mit PHP aktualisieren.

Posted on Juni 10, 2009 by 4 Comments

Heute mal der Codeschnipsel um sein Twitter Profil Image mittels PHP zu aktualisieren:

Als erstes legen wir unsere Twitter-User Daten fest

1
2
3
4
<?php
$username = 'Twitter-User';
$password = 'Passwort';
?>

Wichtig ist, dass das zu speichernde Bild lokal auf dem Webspace vorhanden ist, da es sonst zu einem Problem kommt, welches ich noch nicht lösen konnte. Sollte das Bild denoch im Webliegen kann man dies mit folgenden Code auf dem Webspace speichern:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
// Bilder Speichern
ob_start();
$fp = fopen("http://assets0.twitter.com/images/twitter_logo_header.png", "rb"); //Image lesen
fpassthru($fp);
fclose($fp);
$file = ob_get_contents();
ob_end_clean();
$fp = fopen("./twitterlogo.png", "wb+"); //Image speichern
fwrite($fp, $file);
fclose($fp);
?>

Nun wird das Bild vor jedem aufruf lokal gespeichert. Um das Bild nun zu Twitter zu schicken brauchen wir folgenden funktion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
function account_update_profile_image($image, $user, $pw) {
		$args = array();
		if(file_exists($image)) {
			$args['image'] = "@$image";
		}
 
		if(isset($args['image'])) {		
			$url = "http://twitter.com/account/update_profile_image.xml";
			//PRINT_r($args);
			$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_HTTPHEADER, array('Expect:'));
			curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $args);
			curl_setopt($curl_handle, CURLOPT_USERPWD, "$user:$pw");
			$buffer = curl_exec($curl_handle);
			curl_close($curl_handle); 
			//PRINT_R($buffer);
		} 
	}
?>

Diese Funktion überprüft ob das Bild existiert und schreibt es in ein Array, um es letztendlich an den Twitter Account zu schicken.

Um die Funktion aufzurufen werden drei Parameter benötigt, der Bildername, der Username und das Passwort, wobei Username und Passwort aus den oben festgelegten Variablen Stammen.

1
account_update_profile_image("twitterlogo.png", $username, $password);