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:
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 • 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ä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">
Kommentar