2012-05-13 19 views
5

Lütfen, yardıma ihtiyacım var. Bu konuda 1 ay çalışıyorum !!Facebook-connect bir yeniden yönlendirme döngüsü verir

PHP ve php-sdk 3.1.1'i kullanarak facebook bağlantı girişini web siteme uygulamak istiyorum. Birkaç kelimeyle kodum çevrimdışında (localhost'ta) çalışır, ancak çevrimiçi değil, "Çok fazla yönlendirme döngüsü (Chrome'da)" ile sonuçlanır: Hata 310 (net :: ERR_TOO_MANY_REDIRECTS): Çok fazla yönlendirme vardı.

İşte benim kodudur:

1/I facebook bunu SDK'yı bağlamak ve init yük:

require 'src/facebook.php'; 
    $facebook = new Facebook(array(
     'appId' => '209633612480053', 
     'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
    )); 

, ben facebook-developper sayfadaki iki uygulamaları, çevrimdışı testler için bir tane yarattı lütfen unutmayın ve diğer çevrimiçi testler için. Ve test yaparken iki appıd/secret (çevrimiçi ve çevrimdışı) çiftini doğru bir şekilde değiştirdiğime eminim. Yani, kötü facebbok-connect init problemi değil. kullanıcı ic Facebook'a bağlıysa, bu nedenle, başka, bilgidir görüntülemek erişime izin vermek için facebook giriş sayfasına yönlendirir:

$uid = $facebook->getUser(); 

    if($uid) 
    { 
    /* 
     * Get user information. 
     */ 
    $user = $facebook->api('me/'); 
    print_r($user); // Display user info. 
    } 
    else 
    { 
    /* 
     * Redirect to FB login URL to allow access. 
     */ 
    $loginURL = $facebook->getLoginURL(); 
    echo '<script> top.location.href=\''.$loginURL.'\'</script>'; 
    } 

Bu kadar basit:

2/I kullanıcı bilgi almak için deneyin.

BT MÜKEMMEL ÇEVRİMDIŞI ÇALIŞIYOR ancak çevrimiçi, bir krom hatayı alıyorum:

This webpage has a redirect loop 
The webpage at https://www.facebook.com/dialog/oauth?client_id=209633612480053&redirect_uri=http%3A%2F%2Fwww.bluward.com%2Foauth%2Ffacebook&state=551f60cd4be6cd8ed1622f8168a5219a#_=_ has resulted in too many redirects. Clearing your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with your computer. 

Bazı ek bilgiler: Online, ben 1and1 host sağlayıcı kullanın ve çevrimdışı sunucu daha aynı sunucu yapılandırmasına sahip emin olmak için (MAMP Pro olan), sams php.ini dosyasını yükledim.

Lütfen, birinin bir fikri varsa veya benzer bir sorunla karşılaşırsa, yardım etmekten memnuniyet duyarız.

Tüm yardımlarınız için şimdiden teşekkür ederiz.

GÜNCELLEME: Ben sorunlu hattına odaklanmak için kodumu güncellenen, bu yüzden yerine facebook giriş sayfasına yönlendirme, ben yönlendirme URL'sini görüntüler, bu yüzden sadece giriş tıklamak zorunda

:

$uid = $facebook->getUser(); 

    if($uid) 
    { 
    /* 
     * Get user information. 
     */ 
    $user = $facebook->api('me/'); 
    print_r($user); // Display user info. 
    } 
    else 
    { 
    /* 
     * Redirect to FB login URL to allow access. 
     */ 
    $loginURL = $facebook->getLoginURL(); 
    echo $loginURL; // <-- HERE I CHANGED THE CODE TO DISPLAY LOGIN URL 
    } 

Fark ettiğim şey, facebook'un komut dosyası sayfama sonsuz olarak yönlendirmesidir. URL çubuğundaki yalnızca code parametresi değişir.

Peki, neden facebbok kullanıcı bilgisini vermeden komut sayfama yönlendiriliyor?

Lütfen, herhangi bir fikir?

+0

Tarayıcınızda çerezleri etkinleştirdiniz mi? – AlphaMale

+0

Evet, tabiki. Yerel verilerin ayarlanmasını sağlayan ayarı kullanıyorum (önerilir). – htaidirt

+0

garip o zaman. $ loginURL = $ facebook-> getLoginURL(); ve hala yönlendiriyorsa güncelleştirin. – AlphaMale

cevap

5

dan php, benim durumumda ben SDK'dan base_facebook.php düzenlemek zorunda kaldı: elle eklenen

public static $CURL_OPTS = array(
    CURLOPT_CONNECTTIMEOUT => 10, 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_TIMEOUT  => 60, 
    CURLOPT_USERAGENT  => 'facebook-php-3.2', 
    CURLOPT_SSL_VERIFYPEER => false, 
    CURLOPT_SSL_VERIFYHOST => false, 
); 

son iki seçenek.

+0

genius, aredirect loop ile aynı sorunu vardı, bu benim için sabit. –

+0

Bende aynı sorun var .. ama bu çözüm çalışmıyor .. –

0

Krom tarayıcıyla benzer bir sorun yaşadım, çerezler her zaman yanlış veya boştu.

Daha sonra bir facebook örneğini Heroku'dan yükledim (js yönlendirme yerine oturum açma penceresi açılır) ve web sitesinin temel URL'si sunucu kök URL'si olmadığında kromda çalışmadığını fark ettim (ör: localhost/somedirectory/). Ancak sanal bir ana bilgisayar oluşturduktan sonra çalışır gibi görünüyor.

Dizinin bir örneğini görebilirsiniz.Bu sorun vardı burada uygulamadan https://gist.github.com/2845986

İlgili konular