XT Knowledge Base
Hauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz | Aktuelle Version

Tiffu PHP API

(Unterschied zwischen Versionen)

(Die Seite wurde neu angelegt: „Die Tiffu-API ermöglicht den Zugriff (lesend und schreibend) auf die Tiffu-Variablen. [http://tiffu.com Tiffu] ist eine Webseite, auf der Benutzer Status-Varia…“)
 
(Der Versionsvergleich bezieht 1 dazwischenliegende Version mit ein.)
Zeile 6: Zeile 6:
Das folgende Beispiel demonstriert das Setzen einer Variable. Für den Zugriff werden die Tiffu-Login-Informationen benötigt und
Das folgende Beispiel demonstriert das Setzen einer Variable. Für den Zugriff werden die Tiffu-Login-Informationen benötigt und
-
der API-Key der Variablen, die unter "Mein Status" angezeigt werden:
+
der API-Key der Variablen, die unter "Mein Status" angezeigt werden.
<pre>
<pre>
&lt;?
&lt;?
     include("tiffuapi.php");
     include("tiffuapi.php");
 +
    define( 'TIFFU_USER', '<Ihr Tiffu-Benutzername>' );
 +
    define( 'TIFFU_PASSWORD', '<Ihr Tiffu-Passwort>' );
     define( 'TEST_VAR', '7e9aae858ec2f04250af7e7c1e2d9be3' );
     define( 'TEST_VAR', '7e9aae858ec2f04250af7e7c1e2d9be3' );
Zeile 17: Zeile 19:
     function updateVar( $api, $key, $value )
     function updateVar( $api, $key, $value )
     {
     {
-
         if( !$request->setVar( $key, $value ) )
+
         if( !$api->setVar( $key, $value ) )
-
             echo $request->getError()."<br>\n";
+
             echo $api->getError()."<br>\n";
         else
         else
             echo "success<br>\n";
             echo "success<br>\n";
     }
     }
-
     function updateVar( $api, TEST_VAR, 'irgendein Wert' );   
+
     updateVar( $api, TEST_VAR, 'irgendein Wert' );   
?&gt;
?&gt;
</pre>
</pre>

Aktuelle Version vom 17:02, 12. Aug. 2010

Die Tiffu-API ermöglicht den Zugriff (lesend und schreibend) auf die Tiffu-Variablen.

Tiffu ist eine Webseite, auf der Benutzer Status-Variablen anlegen, ändern und beobachten können, um verschiedene, sich mehr oder weniger häufig ändernde Informationen bereitzustellen. Tiffu lebt davon, dass möglichst viele interessante und nützliche Informationen bereitgestellt werden.

Wenn Sie Informationen haben, die sich regelmäßig ändern und einen zusätzlichen Weg suchen, diese zu publizieren, können Sie dies sehr einfach mit der unten aufgelisteten PHP-Klasse machen.

Das folgende Beispiel demonstriert das Setzen einer Variable. Für den Zugriff werden die Tiffu-Login-Informationen benötigt und der API-Key der Variablen, die unter "Mein Status" angezeigt werden.

<?
    include("tiffuapi.php");

    define( 'TIFFU_USER', '<Ihr Tiffu-Benutzername>' );
    define( 'TIFFU_PASSWORD', '<Ihr Tiffu-Passwort>' );
    define( 'TEST_VAR', '7e9aae858ec2f04250af7e7c1e2d9be3' );

    $api = new TiffuAPI( TIFFU_USER, TIFFU_PASSWORD );

    function updateVar( $api, $key, $value )
    {
        if( !$api->setVar( $key, $value ) )
            echo $api->getError()."<br>\n";
        else
            echo "success<br>\n";
    }

    updateVar( $api, TEST_VAR, 'irgendein Wert' );   
?>

Tiffu-API PHP

// tiffuapi.php
<?
    define( 'TIFFU_HOST', 'tiffu.com' );
    define( 'TIFFU_PORT', 80 );
    define( 'TIFFU_URI', '/api.php' );

    class TiffuAPI
    {
        private $_user;
        private $_pass;
        private $_errormsg;
        
        function __construct( $user, $pass )
        {
            $this->_user = $user;
            $this->_pass = md5( $pass );
        }
        
        function createParamList( $data )
        {
            $req = "";
            foreach( $data as $key => $value )
                $req .= $key . '=' . urlencode( stripslashes($value) ) . '&';
        
            return substr( $req, 0, strlen($req)-1 );
        }
        
        function createHeader( $data )
        {
            $header = "";
            foreach( $data as $key => $value )
                $header .= $key.': '.$value."\r\n";
            return $header;
        }
        
        function sendHttpRequest( $host, $port, $uri, $method, $header, $data )
        {
            $http_request  = "$method $uri HTTP/1.0\r\n";
            $http_request .= $this->createHeader( array( 'HOST' => $host ) );
            $http_request .= $this->createHeader( $header );
            $http_request .= $this->createHeader( array( 'Content-Length' => strlen($data) ) );
            $http_request .= "\r\n";
            $http_request .= $data;
            
            $response = '';
            if( false === ($fs = @fsockopen( $host, $port, $errno, $errstr, 10) ) ) 
            {
                die( 'Could not open socket' );
            }
        
            fwrite( $fs, $http_request );
            while( !feof($fs) )
                $response .= fgets( $fs, 1160 ); // One TCP-IP packet
            fclose($fs);
            $response = explode("\r\n\r\n", $response, 2);
            return $response;
        }
        
        function _http_post( $data )
        {            
            $req = $this->createParamList( $data );
            
            $header = array( 
                'Content-Type' => 'application/x-www-form-urlencoded;',
                'User-Agent' => 'TIFFU_CLIENT/PHP'
            );
            
            return $this->sendHttpRequest( TIFFU_HOST, TIFFU_PORT, TIFFU_URI, 'POST', $header, $req );
        }
        
        function getError()
        {
            return $this->_errormsg;
        }
        
        function setVar( $key, $value )
        {
            $response = $this->_http_post(
                array (
                    'u' => $this->_user,
                    'p' => $this->_pass,
                    'k' => $key,
                    'v' => $value,
                    'a' => 'setval'
                )
            );

            $answers = explode ("\n", $response[1] );
            if( $answers[1] == "OK" )
                return true;
            $this->_errormsg = $answers[1];
            return false;            
        }
        
        function getVar( $key )
        {
            $response = $this->_http_post(
                array (
                    'u' => $this->_user,
                    'p' => $this->_pass,
                    'k' => $key,
                    'a' => 'getval'
                )
            );
            $answers = explode ("\n", $response[1] );
            if( $answers[0] == "OK" )
                return $answers[1];
            $this->_errormsg = $answers[0];
            return false;            
        }
    }
?>