2012-04-06 7 views
0

http://apps.facebook.com/karmabalance/Kann nicht FB Genehmigung an der Arbeit richtig

ich auf meinem FB App arbeiten würde versuchen, die Anmeldung und Zulassung zu bekommen, aber es scheint, lustige Sachen zu tun. Grundsätzlich möchte ich nur, wenn der Benutzer auf meine App klickt, möchte ich, dass fb ihre Überprüfung durchführt, um sicherzustellen, dass sie angemeldet sind und die App genehmigt haben, und danach muss das Programm eine Überprüfung der Datenbank durchführen, um zu sehen, ob Sie sind bereits ein Datensatz in der Datenbank mit der Benutzer-FB-ID. Wenn es kein Datensatz ist, möchte ich, dass das Programm den Benutzer an ein create acct sendet. Seite, die es dem Benutzer ermöglicht, einen Benutzernamen einzugeben. Wenn ein Datensatz vorhanden ist, möchte ich den Benutzer zur Startseite der App senden.

Ich dachte, ich habe es funktioniert, aber es ist immer noch nicht richtig, und ich kann nicht herausfinden, warum. Hier ist mein Code. Ich bin mir sicher, dass es auch einen besseren Weg gibt, dies zu tun, ich bin ein Neuling, also versuche ich das herauszufinden, während ich gehe. Jede Hilfe wäre willkommen.

Dank

Wenn der Benutzer meine Anwendung klickt geht es um diese Seite index.php.

<?php 
require 'config.php'; 

session_start(); 

$usercheck = $user_profile['id']; 

$result = mysql_query("SELECT FBID FROM PLAYER WHERE (FBID = '$usercheck') "); 

if ($facebook->getUser()) 
{ 

    if(mysql_num_rows($result)) 
    { 
     header('location: Home.php'); 
    } else 
    { ?> 
     <p>Please choose a Username for yourself. </p> 
      <form action='includes/signup.php' method='post'> 
      <fieldset style="width:600px";> 
      <label>Username</label> 
      <input name='username' type='text' value='<? if ($facebook->getUser()) 
        {echo'Choose a Username';} ?>' /> 

      <input name='submit' type='submit' value='submit' /> 
      </fieldset> 
      </form> 
    <? } 
} else 
    { ?> 
    <p>Sign up with Facebook <fb:login-button perms='email'> Connect</fb:login-button> 

It only takes a few seconds</p> 

<div id='fb-root'></div> 

     <script src='http://connect.facebook.net/en_US/all.js'></script> 

     <script> 

     FB.init({ 

      appId:'334230339967350', cookie:true, 

      status:true, xfbml:true 

     }); 

     FB.Event.subscribe('auth.login', function(response) { 

     window.location.reload(); //will reload your page you are on 

     }); 

     </script> 
    <? } 

?> 

Die Konfigurationsdatei:

<?php 
//Facebook Configuration 
require 'facebook-php-sdk/src/facebook.php'; 

$app_id = "xxxxxxxxxxxx"; 
$app_secret = "xxxxxxx"; 
$facebook = new Facebook(array(
     'appId' => $app_id, 
     'secret' => $app_secret, 
     'cookie' => true 
)); 

// Get User ID 
$user = $facebook->getUser(); 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 


//SQL Configuration 

// i start most if not all pages with this depending on what Im using it for. 

    $host = 'localhost'; // host name OR IP 

    $username = 'security';//username 

    $pass = 'blockedout'; //password 

    $dbname = 'Security'; // Database Name 

    $conn = mysql_connect($host, $username, $pass) or die(mysql_error()); 

    if ($conn) 

    { 

     mysql_select_db($dbname) or die(mysql_error()); 

    } 

    else 

    { 

     echo 'Connection failed.'; 

    } // The above code connects to your database or errors if it cannot connect. 

// Again this is simple, security is your own priority. 

//GLOBAL VALUES?? 

$usercheck = $user_profile['id']; 

$usernamequery = mysql_query("SELECT UserName FROM PLAYER WHERE (FBID = '$usercheck') "); 
$username = mysql_fetch_array($usernamequery); 

$levelquery = mysql_query("SELECT LevelID FROM PLAYER WHERE (FBID = '$usercheck') "); 
$level = mysql_fetch_array($levelquery); 


$result = mysql_query("SELECT FBID FROM PLAYER WHERE (FBID = '$usercheck') "); 


?> 

Und hier ist die signup.php Seite

<? 

require_once '../config.php'; 



//here you could add checks for any empty fields using (!($_POST['first_name'])) 

$first_name = $user_profile['first_name']; // this line will collect our information from the 

// field in our form that has the facebook first_name in it. 

$last_name = $user_profile['last_name']; // same as above 

$email = $user_profile['email']; //same as above 

$id = $user_profile['id']; //same as above 

$username1 = $_POST['username']; 

$query = mysql_query 
     (" 
     INSERT INTO PLAYER (FirstName, LastName, EMail, FBID, UserName, Status, LevelID, Cash, LifePoints, RespectPoints, ReputationPoints, UpgradePoints, HealthPercent) 
     VALUES ('$first_name', '$last_name', '$email', '$id', '$username1', '1', '1', '25000', '3', '3', '3', '20', '100') 
     ") 
     or die(mysql_error()); 

// The query will insert our fields in to the database as the above line shows, make 

//sure your database table headers are exactly correct otherwise this will not work 



// You can now either send an email or if you wanted header to a new page. This is 

//up to you. Tutorials on google will show you how to do this part 

if($query){ 

header('location: ../Home.php'); 

}else { 

echo 'error adding to database';  

} 

?> 

Antwort

0

Sie die OAuth-Token für den Benutzer fehlt. das ist der Griff des Benutzers, den Sie ziehen möchten. Wenn Sie immer noch verwirrt sind, lassen Sie es mich wissen.

+0

Danke, yeah, ich dachte, ich mache das mit '// Get User ID $ user = $ facebook-> getUser(); if ($ user) { versuchen Sie { // Fahren Sie fort zu wissen, Sie haben einen angemeldeten Benutzer, der authentifiziert ist. $ user_profile = $ facebook-> api ('/ me'); } catch (FacebookApiException $ e) { error_log ($ e); $ user = null; } } ' Vielleicht könnten Sie mir in die richtige Richtung zeigen, um zu beginnen, es mehr zu erforschen? –