Ankündigung

Einklappen
Keine Ankündigung bisher.

Twitter oAuth

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Twitter oAuth

    Hallo,

    mithilfe dieses Tutorials (How to quickly integrate with Twitter’s OAuth API using PHP :: Jaisen Mathai) versuche ich es zu realisieren, dass meine Benutzer sich sofort oder später mit Twitter verbinden können. Dazu möchte ich neben dem normalen Loginbutton einen "Sign in with Twitter"-Button anzeigen. Soweit so gut. Soweit kein Problem.

    Wenn ich das System richtig verstanden habe, dann muss ich nachdem Twitter mich zu meiner Confirm-Seite (confirm.php) weiterleitet, den oauth_token und den oauth_token_secret speichern. Dazu habe ich ein Formular gemacht, in dem der Benutzer noch zusätzlich Informationen angeben soll. (Benutzername, E-Mail, usw) damit ich das noch dazuspeichern kann.

    Ein paar Anforderungen habe ich:

    1. Bei E-Mail soll schon die E-Mail drinen stehen, die bei Twitter verwendet wird. Mein Lösungsansatz (siehe Code) geht aber nicht, das Feld bleibt leer.

    2. Wenn Daten im Formular falsch sind, muss ich ja quasi wieder eine Verbindung mittels oauth_token und oauth_token_secret herstellen, damit ich sowas wie TwitterName und ebend auch E-Mail anzeigen lassen kann. Er zeigt mir leider nichts an, nachdem ich das Formular gesendet habe.

    Ein Screenshot, wie das aussieht nach dem ich von Twitter weitergeleitet wurde:

    1twitter.jpg

    Und ein Screenshot nachdem das Formular gesendet wurde:

    2twitter.jpg (Benutzername wird nicht mehr angezeigt => Keine Verbindung zu Twitter)

    Und hier mein Code, unnötiges HTML habe ich entfernt zur Übersichtlichkeit:

    PHP-Code:
    <?php
    include 'EpiCurl.php';
    include 
    'EpiOAuth.php';
    include 
    'EpiTwitter.php';
    include 
    'secret.php';

    $token_oauth htmlspecialchars($_GET['oauth_token']);

    if(!isset(
    $_POST['reg_sbmt']))
    {
      
    $twitterObj = new EpiTwitter($consumer_key$consumer_secret);

      
    $twitterObj->setToken(htmlspecialchars($_GET['oauth_token']));
      
    $token $twitterObj->getAccessToken();
      
    $twitterObj->setToken($token->oauth_token$token->oauth_token_secret);
      
    $twitterInfo$twitterObj->get_accountVerify_credentials();
      
    $twitterInfo->response;
      
    // echo "Your twitter username is {$twitterInfo->screen_name} and your profile picture is <img src=\"{$twitterInfo->profile_image_url}\">";
      
    $tok file_put_contents('tok'$token->oauth_token);
      
    $sec file_put_contents('sec'$token->oauth_token_secret);
      
    $toks $token->oauth_token;
      
    $secs $token->oauth_token_secret;

    } else {
      
    $twitterObj = new EpiTwitter($consumer_key$consumer_secret);
      
      
    $twitterObj->setToken(htmlspecialchars($_POST['toks']), htmlspecialchars($_POST['secs']));
      
    $twitterInfo $twitterObj->get_accountVerify_credentials();
      
    $twitterInfo->response;
    }
    ?>

                <h1>Habbo-Fans.de &bull; Verbindung zu Twitter herstellen</h1>
                <b>Hallo <?php echo $twitterInfo->screen_name?>, </b>wir freuen uns, dass du dich dazu entschieden hast, deinen Account mit Twitter zu verbinden. Um dein Profil funktionsf&auml;hig zu machen, bitten wir dich noch um diese kurze Informationen:<br />
                <form name="reg" method="POST" action="confirm.php?oauth_token=<?php echo $token_oauth?>">
                
                    <input type="hidden" name="tok" value="<?php echo $toks?>">
                    <input type="hidden" name="sec" value="<?php echo $secs?>">
                    
                    E-Mail: <input type="text" name="user_mail" value="<?php echo $twitterInfo->email?>">
                    <input type="hidden" name="reg_sbmt" value="wird mal ein button">

  • #2
    PHP-Code:
    $twitterInfo->response 
    Ist das eine Methode oder Eigenschaft? Entweder fehlen die Klammern oder die Eigenschaft verpufft im Raum

    PHP-Code:
    $tok file_put_contents('tok'$token->oauth_token);
    $sec file_put_contents('sec'$token->oauth_token_secret);
    $toks $token->oauth_token;
    $secs $token->oauth_token_secret
    wofür speicherst du die Werte in einer Datei?
    DevBlog|3D Online-Shopping|Xatrium

    Kommentar


    • #3
      Ich hab das mit response einfach übernommen vom Tutorial, ebenso wie das mit der Datei. Wenn ich wüsste dass es nicht wichtig ist, würde ich es auch rausnehmen. Zumindest wird es nirgendso verwendet.

      Kommentar


      • #4
        Im fortgeschrittenen Forum würde ich da sagen RTFM was in diesem Fall bedeutet schau dir die Klassen an, was sie machen und kopier nicht einfach irgendwelchen Code ohne zu wissen wieso und weshalb. Der Ansatz token und secret dann wiederrum via post zu verschicken führt auch zu einem leichten ziehen in der Magengegend, sowas sollte serverseitig bleiben -> also in der datenbank oder wenn nur temporär gebraucht in der Session ablegen.
        [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
        | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

        Kommentar


        • #5
          [MOD: verschoben]
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar

          Lädt...
          X