Hallo,

ik ben al een tijdje bezig met een project gekoppeld aan twitter. Het is belangrijk dat gebruikers van de site hun eigen twitter-account opgeven bij registratie. Nou kan ik natuurlijk ieder account invullen, als daar geen controle op plaatsvindt.

Daarom wil ik dat mensen via de site moeten inloggen met hun twittergegevens. Deze worden dan ook gebruikt voor mijn site (wordt allemaal netjes gecodeerd).

Echter, via de twitter-api kan je een leuke check doen. Dat script heb ik dus gemaakt.
Als de gebruiker juiste gegevens (user+pass) invult, dan krijg ik altijd terug dat het klopt.

Maar, ik krijg er ook een hele reutemeteut aan informatie aan mee van Twitter zelf. Een XML opmaak.

Hoe kan ik die XML-opmaak weghalen, en dus niet laten zien?

Dit is mijn script:


if (check($_POST['twitter'],$_POST['password']) == TRUE)
		{
			echo "Twitter is goed!";
		}
		else
		{
			echo "Foute gegevens!";
		}


checker

<?
function check($user,$pass)
{

	$Curl = 'http://twitter.com/account/verify_credentials.xml'; 
	$CresponseInfo=array(); 
	$Cch = curl_init($Curl);

	curl_setopt($Cch, CURLOPT_USERPWD, $user.':'.$pass); 
	
	$Cresponse = curl_exec($Cch); 
	$CresponseInfo=curl_getinfo($Cch); 
	
	if(intval($CresponseInfo['http_code'])==200){ 
		return TRUE;
	}else{ 
		return FALSE;
	} 
	
}


?>


Weet iemand waar de fout zit?
Als ik foutieve gegevens heb krijg ik dit:

/account/verify_credentials.xml Could not authenticate you. Twitter is goed!

En als ik juiste gegevens heb, krijg ik dus een XML output:

<?xml version="1.0" encoding="UTF-8"?>
<user>
  <id>19040389</id>
  <name>Mathijs van der Hurk</name>
  <screen_name>MathijsvdHurk</screen_name>
  <location>Amersfoort, NL</location>
  <description>Muziek, Radio, Apple, Gitaar, gewoon beetje gek!</description>
  <profile_image_url>http://a3.twimg.com/profile_images/360452707/IMG_5576_normal.jpg</profile_image_url>
  <url>http://www.mathijsvanderhurk.nl</url>
  <protected>false</protected>
  <followers_count>141</followers_count>
  <profile_background_color>1A1B1F</profile_background_color>
  <profile_text_color>666666</profile_text_color>
  <profile_link_color>2FC2EF</profile_link_color>
  <profile_sidebar_fill_color>252429</profile_sidebar_fill_color>
  <profile_sidebar_border_color>181A1E</profile_sidebar_border_color>
  <friends_count>50</friends_count>
  <created_at>Thu Jan 15 21:39:46 +0000 2009</created_at>
  <favourites_count>0</favourites_count>
  <utc_offset>3600</utc_offset>
  <time_zone>Amsterdam</time_zone>
  <profile_background_image_url>http://s.twimg.com/a/1252620925/images/themes/theme9/bg.gif</profile_background_image_url>
  <profile_background_tile>false</profile_background_tile>
  <statuses_count>3457</statuses_count>
  <notifications>false</notifications>
  <verified>false</verified>
  <following>false</following>
  <status>
    <created_at>Mon Sep 14 14:27:13 +0000 2009</created_at>
    <id>3980874450</id>
    <text>Programmeren voor twitterproject</text>
    <source>&lt;a href=&quot;http://www.tweetdeck.com/&quot; rel=&quot;nofollow&quot;&gt;TweetDeck&lt;/a&gt;</source>
    <truncated>false</truncated>
    <in_reply_to_status_id></in_reply_to_status_id>
    <in_reply_to_user_id></in_reply_to_user_id>
    <favorited>false</favorited>
    <in_reply_to_screen_name></in_reply_to_screen_name>
  </status>
</user>
Twitter is goed!


Graag hulp!

Je kan beter naar de XML zelf kijken ;-)

Als de XML-feed teruggeeft: user->id dan is hij ok, anders niet :)
Ik heb een werkend script gevonden.. Eindelijk..

Toch bedankt voor de tip ;)!
ik ben benieuwd ..

EDIT:
<?
function tweet_test($username, $password){
$out="GET http://twitter.com/account/verify_credentials.xml HTTP/1.1\r\n"
."Host: twitter.com\r\n"
."Authorization: Basic ".base64_encode ($username.":".$password)."\r\n"
."Content-type: application/x-www-form-urlencoded\r\n"
."Connection: Close\r\n\r\n";

$fp = fsockopen ('twitter.com', 80);
fwrite ($fp, $out);
$buf = fread($fp, 1024);
fclose ($fp);
$pos = strpos($buf,'Could not');
if ($pos === false){
return true ;
}else{
return false ;
}
}
?>

Reageren