Bazı garip şeyler yapıyor Localhost Facebook Connect

3 Cevap php

Yani belki dokümantasyon güncel değil, ya da ben sadece burada kapalı duyuyorum. Ama FB iframe uygulamalar (bağlamak) bir takım yapmış, ama benim ilk FB Connect sitesi başlıyorum. Localhost'tan çalışan ve Bağlan URL http:// my_external_IP_address. Ben sitemde FB giriş düğmesine tıkladığınızda, o, açılır facebook bekliyor diyor, ve ile kontör URL ile, o kutuda sitemde döndürür http:// mysite/?session={session key, user_id, etc.} User_id benim FB infact olduğunu id. Ve bu yüzden ben pencereyi kapatın Eğer ben niye açılır, normal fb Bağlan iletişim yapmıyor emin değilim ben in açmış değilim, oturum düşünüyor. Bu adımları takip ediyorum.

(Ben 'istenmeyen' olarak tespit edilemez olarak http:// boşluklar eklendi)

  1. html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"
  2. hemen sonra <body> <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript">
  3. At the end, before the body close tag: script type="text/javascript"> FB.init("fbkey", "http://127.0.0.1/xd_receiver.htm"); I have tried using xd_receiver.htm, /xd_receiver.htm (and other combos), and that brings up a blank page. using the http://127.0.0.1 at least does something.

In my config file, which is called before all of those, it checks for a PHP session key to see if they are logged in, if that doesn't exist it looks for a cookie, and if that doesn't exist it does this:

 require_once('includes/facebook.php');
  $facebook = new Facebook($fbkey, $fbsec); 
  $user_id = $facebook->get_loggedin_user();

  if($user_id > 0){
    $user = $ac->getUserFromFB($user_id);
    $_SESSION['user_id'] = $user['user_id'];
  }

Ben test etmek için ekrana dışarı echo User_id her zaman boştur. Oturum olayı da hiçbir zaman oluşmaz. Bu yüzden popup ne yaptığını bilmiyorum, ama ben Facebook emin değil beni içeri giriş olduğunu düşünüyor. Pretty Bu kacirdim. Herhangi bir yardım mutluluk duyacağız. Teşekkürler!

3 Cevap

Ben emin bilmiyorum ama ben sorun yerel makine üzerinde çalışan nedeniyle şüpheleniyoruz.

Benim tahminim Facebook sunucu yerel bir ip adresi olarak 127.0.0.1 makinenizi bulmak mümkün olmayacaktır olmasıdır. Sen gerçek bir uzak ip almak yerine bunu kullanmaya whatisyourip.com gibi bir yerde kullanarak deneyebilirsiniz ama o zaman bile size FB sunucusu için kurulmuş gerekli port yönlendirme yerel makine almak mümkün olduğundan emin olmak gerekir .

Sonuçta, sitenin bu tür için ben oldukça yerel bir ortamda daha harici bir sunucuya geliştirmek için daha kolay olacağını düşünüyorum.

Bu arada, ben FB.init için ikinci parametre () girmek zorunda değilsiniz - Ben sadece kullanmak

FB.init(fbkey);

Zaten değil varsa, eğer yardımcı olur tamamen görmek için dışarı alarak deneyebilirsiniz.

Ayrıca ben facebook FeatureLoader.js eklemek için komut dosyası etiketi önce olması gerektiğini düşünüyorum peşinde değil etiketlemek etiket

Ben şahsen facebook connect ile başa çıkmak için en kolay yolu, bir yerde bir etki alanı ile bir sunucuya benim localhost eşitlemek için WinSCP kullanmaktır buldum. Fb bağlamak bir uygulamaya bağlı olduğundan, bu uygulama API anahtarı oluşturulur alır nerede olduğu, bir etki alanına bağlı gerekiyor. Orada bir yerlerde, kendi localhost şaşırtıcı, çalışmıyor.

Düzenlemeyi deneyin için hosts file için 127.0.0.1 (bu sürece the settings sizin uygulamayla ilişkili konak olarak ayarlamak gibi, ne olduğu önemli değil) bir hostname işaret etmek, ve daha sonra tarayıcınızı yeniden başlatın ve hosts dosyasında belirlenen etki yoluyla yerel app ziyaret. Bu, çoğu FB-ilgili özellikleri test etmek için izin vermelidir. Facebook'un sunucuları da söz konusu etki de app erişebilir olma bağlıdır çünkü ana istisna, düğme gibi olacak.

Örnek ana hat:

127.0.0.1    www.example.com

Yukarıda size / etc / hosts eklemek ve tarayıcınızı yeniden başlatın, size www.example.com ile test ediyoruz URL "127.0.0.1" bileşeni değiştirebilirsiniz ve o olacak gibi ilişkili etki sizin app gerçekten www.example.com edildi