[?] WhatPulse WebAPI

smaak

Well-known member
7 Mai 2006
2.811
357
Servus Klammer/innen!

Nach einigen Anläufen gebe ich es auf, meine Keys 'n' Clicks der Welt auf meiner Website zu zeigen. Ursache ist die für mich völlig unverständliche Aneinanderreihung von Wirrwarr in der von WhatPulse zum Download angebotenen user_parse.php.

Mit anderen Worten, ich beherrsche kein/kaum PHP. Auch Google wirft mit einigen Wortkombinationen nicht wirklich das aus, was ich mir erhofft hatte.

Nun zu meinen Fragen:
- Habt Ihr vllt. einen Link zu einem brauchbaren Tutorial? (gern auch auf englisch)
- Hättet Ihr evtl. Lust, mir es verständlich zu vermitteln?

Dieses Forensignaturbildchen von WhatPulse möchte ich nicht auf meiner Website. :ugly:
 
Du willst es in Text ausgeben oder? Nicht irgendwie selber ein Bildchen generieren?

Der Grund, dass du's wohl nicht hingekriegt hast, ist die veraltete user_parse.php.

Hab sie jetzt erneuert und jetzt klappts.

Du musst die ID (siehe unten mein Comment) einfach durch diene Ersetzen , dann klappts :).

PHP:
<pre>
<?
	/*
	 *	readUserStats(userid)
	 *		-	Read WhatPulse user statistics from the webapi into an array.
	 *
	 *	Author: [email protected]
	 */
	function readUserStats($userid)
	{
		// prepare an array to hold your stats
		$WhatPulseStats = array();
		
		// types of statistics 
		$stat_types = array("UserID", "AccountName", "Country",
						"DateJoined", "Homepage", "LastPulse", 
						"Pulses", "TotalKeyCount", "TotalMouseClicks",
						"AvKeysPerPulse", "AvClicksPerPulse", 
						"AvKPS", "AvCPS", "Rank", "TeamID", 
						"TeamName", "TeamMembers", "TeamKeys", 
						"TeamClicks", "TeamDescription", 
						"TeamDateFormed", "RankInTeam", "GeneratedTime");
						
   		// init the xml parser and read the data into an array
   		$data = implode("", file("https://whatpulse.org/api/user.php?UserID=".$userid));
   		$parser = xml_parser_create();
   		xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
   		xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
   		xml_parse_into_struct($parser, $data, $values, $tags);
   		xml_parser_free($parser);
   		
   		// loop through the structures
   		foreach ($tags as $key => $val) 
   		{
	   		// only process stuff between the <UserStats> tags
       		if ($key == "UserStats") 
       		{
	       		// loop through the tags inside <UserStats>
           		$ranges = $val;
           		for ($i = 0; $i < count($ranges); $i += 2) 
           		{
					$offset = $ranges[$i] + 1;
					$len = $ranges[$i + 1] - $offset;
					$statsarray = array_slice($values, $offset, $len);
					
					// loop through the structure of the xml tag
					foreach($statsarray as $key => $value)
					{
						// match to a stats_type
						for($i = 0; $i < count($stat_types); $i++)
						{
							if($value['tag'] == $stat_types[$i]) 
							{
								// remember the value of the stats_type
								$type = $stat_types[$i];
								$WhatPulseStats[$type] = $value['value'];
							}
						} 
					} 
				} 
			} 
			else {
				continue;
			}
		} 
		
		return $WhatPulseStats;
	} 
	
	// read statistics
	$stats = readUserStats(212091); // ID durch deine ersetzen

	echo "Tastaturklicks: ".$stats['TotalKeyCount']."<br />Mausklicks:".$stats['TotalMouseClicks'];

?> 
</pre>
 
Zuletzt bearbeitet:
Also das sieht doch recht simpel aus.

Zeile 71

$stats = readUserStats(1);

die 1 durch deine ID ersezen und mit aufruf der seite (muß natürlcih auch php-fähigem webspace liegen) wirds ausgegeben.
 
Also das sieht doch recht simpel aus.

Zeile 71

$stats = readUserStats(1);

die 1 durch deine ID ersezen und mit aufruf der seite (muß natürlcih auch php-fähigem webspace liegen) wirds ausgegeben.


Damit wird dann nur erst die Array "generiert". Zusätzlich war oben die URL zur WebAPI veraltet. Siehe oben mein Edit.
 
Also das sieht doch recht simpel aus.

Zeile 71

$stats = readUserStats(1);

die 1 durch deine ID ersezen und mit aufruf der seite (muß natürlcih auch php-fähigem webspace liegen) wirds ausgegeben.

Soweit war ich auch schon. ;)

Du musst die ID (siehe unten mein Comment) einfach durch diene Ersetzen , dann klappts :).
...

Leider nicht:
Code:
Warning:  file() [function.file]: URL file-access is disabled in the server configuration in /srv/www/htdocs/web18/html/bockmist/test.php on line 25

Warning:  file(https://whatpulse.org/api/user.php?UserID=123981) [function.file]: failed to open stream: no suitable wrapper could be found in /srv/www/htdocs/web18/html/bockmist/test.php on line 25

Warning:  implode() [function.implode]: Bad arguments. in /srv/www/htdocs/web18/html/bockmist/test.php on line 25

Tastaturklicks: 
Mausklicks:
Bedeutet das, dass mein Hoster den Zugriff auf externe Dateien unterbindet?


Das Häkchen bei Generate XML statistics (webapi) in meinen WhatPulse-Profil ist ebenfalls aktiviert.
 
Zuletzt bearbeitet:
Ich werde meinem Hoster diesbezüglich einfach mal eine Mail schicken, mal sehen was sich machen lässt.

Vielen Dank schonmal an euch! :)