kostenloser Webspace werbefrei: lima-city


twitter oauth ohne curl

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bginfo

    bginfo hat kostenlosen Webspace.

    Hallo

    ich möchte auf einem Web-Hosting, bei dem leider kein CURL funktioniert die Twitter-API nutzen

    aber alle bisher gefundenen Twitter-API-Tools (libs) nutzen curl

    jetzt habe ich zwar doch einen Code gefunden, der ohne CURl funktioniert,
    aber mit oauth2 .... Bearer Token .... also ohne User Access Token

    <?php 
    // ---------------------------------------------------------------- 
    
    header("Content-Type: text/html; charset=utf-8");
    
    // ---------------------------------------------------------------- 
    
    $consumerKey    = '##############'; // hier consumer_Key einfügen
    $consumerSecret = '##############'; // hier consumer_Secret einfügen
    
    // ---------------------------------------------------------------- 
    
    $authContext = stream_context_create(array(
        'http' => array(
            'method'  => 'POST',
            'header'  => "Authorization: Basic " . base64_encode(($consumerKey).':'.($consumerSecret)) . "\r\n".
                    "Content-type: application/x-www-form-urlencoded;charset=UTF-8\r\n".
                    "Content-Length: 29\r\n".
                    "\r\n".
                    "grant_type=client_credentials",
        ),
    ));
    
    
    // ---------------------------------------------------------------- 
    // ----------------------- oauth2/token --------------------------- 
    
    
    $authResponse = file_get_contents("https://api.twitter.com/oauth2/token", false, $authContext);
    
    $decodedAuth = json_decode($authResponse, true);
    
    $bearerToken = $decodedAuth["access_token"];
    
    
    // ---------------------------------------------------------------- 
    
    
    $context_get = stream_context_create(array(
        'http' => array(
            'method'  => 'GET',
            'header'  => "Authorization: Bearer " . $bearerToken . "\r\n".
                         "\r\n".
                         "grant_type=client_credentials",
        ),
    ));
    
    
    // ---------------------------------------------------------------- 
    // --------------- application/rate_limit_status ------------------ 
    
    /* ------ 
    
    $api_url = 'https://api.twitter.com/1.1/application/rate_limit_status.json'; 
    $encoded_limit_status = file_get_contents($api_url, false, $context_get);
    $decoded_limit_status = json_decode($encoded_limit_status); 
    
    print '<br />'."\n"; 
    print '<br />'."\n"; 
    print '<pre style="margin:18px 4px; padding:6px; text-align:left; background:#DEDEDE; color:#000066;">'."\n"; 
    print_r($decoded_limit_status); 
    print '</pre>'."\n"; 
    print '<br />'."\n"; 
    print '<br />'."\n"; 
    
    ------ */
    
    // ---------------------------------------------------------------- 
    // -------------------- statuses/user_timeline -------------------- 
    
    $screenname = 'limacity'; 
    $max_result = 10; 
    
    $parameter = ''; 
    
    $parameter .= '&screen_name='.$screenname.''; 
    $parameter .= '&count='.$max_result.''; 
    $parameter .= '&exclude_replies=false'; 
    $parameter .= '&trim_user=true'; 
    $parameter .= '&contributor_details=false'; 
    $parameter .= '&include_rts=true'; 
    
    ## $parameter .= '&user_id='; 
    ## $parameter .= '&since_id='; 
    ## $parameter .= '&max_id='; 
    
    $parameter = ltrim($parameter,'&'); 
    
    $api_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json'; 
    
    $encoded_user_timeline = file_get_contents($api_url.'?'.$parameter, false, $context_get);
    $decoded_user_timeline = json_decode($encoded_user_timeline); 
    
    
    print '<br />'."\n"; 
    print '<br />'."\n"; 
    print '<pre style="margin:18px 4px; padding:6px; text-align:left; background:#DEDEDE; color:#000066;">'."\n"; 
    print_r($decoded_user_timeline); 
    print '</pre>'."\n"; 
    print '<br />'."\n"; 
    print '<br />'."\n"; 
    
    
    // ---------------------------------------------------------------- 
    ?>



    Frage: ... wie kann ich jetzt damit auch einen User-Access-Token bekommen, anstatt Bearer Token ?

    so, dass der User zuerst die APP authoriesiert, um damit zu "arbeiten"
    ähnlich wie bei abraham twitteroauth ... nur eben brauche ich es ohne CURL

    also die Funktion
    function http($url, $method, $postfields = NULL) { ...

    so umbauen wie oben mit stream_context_create() und file_get_contents() ... also ohne CURL

    quasi CURL "nachbauen" bzw. "simulieren" mit dem Content-Stream.
    weil das Hosting auf dem es laufen soll leider kein CURL anbietet.



    Beitrag zuletzt geändert: 8.10.2013 11:56:28 von bginfo
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ohne dir den Spaß daran nehmen zu wollen, aber das ist schon sehr sehr speziell.
    Hast du schon in den Discussions bei Twitter Developers einen Beitrag eröffnet?

    Wenn du bei Google nach "Twitter without curl" suchst, kommt dieser Beitrag:
    http://foren.activevb.de/forum/webentwicklung/thread-265/beitrag-266/Twitter-OAuth-using-PHP-without/
    Derjenige scheint dein Problem glücklicherweise gelöst und geteilt.
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!