Probleme mit Facebook-App (Anmeldungsapp)

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

  • Probleme mit Facebook-App (Anmeldungsapp)

    Hallo zusammen,

    ich habe seit der Aktualisierung der Facebook-API habe ich mit meiner Facebook-Anmeldungs-App große Probleme.
    Ich vor dem Problem, dass es soweit eigentlich funktioniert, allerdings haben die User nach der Anmeldung keinen Zugriff auf den eigenen Account, sondern auf den eines anderen Users. Darf natürlich nicht sein.


    Habt Ihr schon mal solche Problem gehabt oder was davon gehört?

    Ich wäre Euch echt dankbar, wenn Ihr mir weiter helfen könntet.


    Vielen Dank im Voraus.

    LG Proggerfan

  • #2
    Hi,

    ohne Code lässt sich schwer was dazu dagen.

    mfg streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      Zitat von streuner Beitrag anzeigen
      Hi,

      ohne Code lässt sich schwer was dazu dagen.

      mfg streuner
      PHP-Code:

      <?php

      require 'facebook.php';

      require(
      "katalog/libs/phpmailer/class.phpmailer.php");

      include 
      'cl_db_mysql.php';

      include 
      'cl_db.php';



      function 
      sendToFB($facebook,$me,$access){

          
      $link "http://www.BEISPIELSEITE.de";    //Link zur Homepage

          
      $message "Hat sich soeben auf GratisCredit.de registriert!";    // Nachricht die darunter angezeigt wird

          
      $name "BEISPIELSEITE";    // Name des Links

          
      $path "http://BEISPIELSEITE.de/gfx/GC.jpg";    //Absoluter! Pfad zum Bild

          
      $zusatz "Das kostenlose Paybackportal im Internet.

      Wie gewohnt einkaufen oder an Bonusaktionen teilnehmen und dabei Geld 

      oder Facebook Credits kassieren.

      Registrieren Sie sich heute noch und verpassen keinen Bonus mehr."
      ;    //Unterschrift unter dem Link

          
      $statusUpdate $facebook->api("/".$me['id']."/feed?access_token=".$access"post", array('message'=> $message'link'=> $link'name'=> $name'caption'=> $zusatz'picture'=> $path'from' => $me));

      }





      function 
      isin($email){

          
      $db = new db();

          
      $sql "SELECT * FROM member WHERE mail='".$db->prepare($email)."'";

          
      $db->execute($sql);

          if(
      $db->num_rows() > 0){

              
      $erg true;

          }else{

              
      $erg false;

          }

          unset(
      $db);

          return 
      $erg;

      }



      function 
      generate($laenge){

          
      $zeichen = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9");

          for(
      $i=0;$i<$laenge;$i++){

              
      $s rand(0,34);

              
      $pw .= $zeichen[$s];

          }

          return 
      $pw;

      }



      function 
      insert($data_array){

          
      $db = new db();

          
      $password =    generate(6);

          if(
      $data_array['gender'] == 'male'){

              
      $anrede "Herr";

          }else{

              
      $anrede "Frau";

          }

      $sql "INSERT INTO member (anrede,vorname,nachname,mail,benutzername,passwort,ip,created,activated,facebook_reg,birthday,invited_id) VALUES ('".$anrede."','".$db->prepare($data_array['first_name'])."','".$db->prepare($data_array['last_name'])."','".$db->prepare($data_array['email'])."','".$db->prepare($data_array['email'])."','".md5($password)."','".$_SERVER['REMOTE_ADDR']."',".time().",1,1,'".$db->prepare($data_array['birthday'])."','".$_SESSION["invited_id"]."')";

          
      $db->execute($sql);

          if(
      $_SESSION["invited_id"]>0){

            
      $sql="

              INSERT INTO invitations (created,member_id,invited_from) VALUES (

              '"
      .time()."',

              '"
      .$db->insert_id()."',

              '"
      .$_SESSION["invited_id"]."'

              )"
      ;

            
      $db->execute($sql);

                  unset(
      $_SESSION["invited_id"]);

            }

          unset(
      $db);

          
      $mailer = new PHPMailer();

          
      $mailer->From     "info@BEISPIELSEITE.de";

          
      $mailer->FromName "BEISPIELSEITE";

          
      $mailer->isHTML(false); 

          
      $mailer->Subject   "Registrierung BEISPIELSEITE";

          
      $body "

      Vielen Dank für Ihre Anmeldung!



      Sie sind nun Mitglied bei www.BEISPIELSEITE.de, dem kostenlosen Bargeld- bzw. Bonusportal (Cashbackportal).



      Benutzername: "
      .$data_array['email']."

      Passwort: Entspricht Ihrem Facebook-Passwort und ist uns NICHT bekannt!





      Wir wünschen Ihnen viel Spass beim Bargeld sammeln.



      Ihr BEISPIELSEITE.de-Team"
      ;

          

          
      $mailer->Body $body;

          
      $mailer->AddAddress($data_array['email'], "");

          
      $mailer->Send();

          
      $mailer->ClearAddresses();

          unset(
      $mailer);

          
      Login($data_array['email'],$password,"no");//einloggen

      }



      $facebook = new Facebook(array(

        
      'appId'  => 'XXXXXXXXXXXXXX',

        
      'secret' => 'XXXXXXXXXXXXXX',

        
      'cookie' => true,

      ));



      $session $facebook->getUser();

      if(!
      $session){

           
      $url $facebook->getLoginUrl(array('req_perms' => "publish_stream,user_photos,email,user_birthday"'display' => "popup"));

                
      header("Location: ".$url);

      }else{

          
      $me $facebook->api("/me?access_token=".$session["access_token"]);

          if(
      $me){

              if(
      isin($me['email']) == true){     //In DB vorhanden

                  
      $db = new db();

                  
      $sql "SELECT passwort FROM member WHERE mail='".$db->prepare($me['email'])."'";

                  
      $res $db->execute($sql);

                  if(
      $res){

                      if(
      $db->num_rows() > 0){

                          foreach(
      $res as $z){;

                              
      $pw $z['passwort'];

                          }

                      }

                  }

                  unset(
      $res);

                  unset(
      $db);

                  
      Login($me['email'],$pw,'no','yes');

                  
      header("Location: http://www.BEISPIELSEITE.de/index.php?section=welcome&testcookie=1&action=login");

              }else{

                  
      insert($me);

                  
      sendToFB($facebook,$me,$session["access_token"]);

                  
      header("Location: http://www.BEISPIELSEITE.de/liker.php");

              }

          

          }

      }

      ?>

      Kommentar


      • #4
        Beim Überfliegen fallen mir spontan folgende zwei Fehler ins Auge:
        PHP-Code:
        $session $facebook->getUser();

        if(!
        $session){

             
        $url $facebook->getLoginUrl(array('req_perms' => "publish_stream,user_photos,email,user_birthday"'display' => "popup"));

                  
        header("Location: ".$url);

        }else{

            
        $me $facebook->api("/me?access_token=".$session["access_token"]); 
        Der Parameter zur Anforderung von Berechtigungen muss 'scope' heißen, nicht (mehr) 'req_perms'.

        Und Facebook::getUser liefert ausschließlich eine User-ID zurück - der Zugriff auf $session["access_token"] ist also unsinnig.

        IdR. muss man allerdings bei Nutzung des PHP SDK das access_token nicht selber setzen, da kümmert sich die Klasse schon selber drum.
        $facebook->api('/me') sollte an der Stelle also ausreichen.

        Allerdings sollten sämtliche Facebook-API-Operationen in try-catch-Blöcke eingefasst werden – sonst knallt es, wenn im Fehlerfall eine Exception geworfen wird.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Vielen herzlichen Dank für die Hinweise - werde ich als erstes ändern.

          Kommentar


          • #6
            Das waren die richtigen Tipps :-) Das Problem scheint jetzt gelöst zu sein.
            Vielen Dank noch mal.
            Solltest du mal eine Auftragsflaute durchleben, meld dich einfach mal bei mir (PN)! Wir suchen immer wieder fähige Programmierer!

            Kommentar

            Lädt...
            X