2012-01-31 24 views
7

Kullanıcılarıma uygulamamın kimliğini doğrulamak için facebook php kütüphanesini kullanıyorum, gayet iyi çalışıyor ama bazı nedenlerle facebook benim uri ismimin sonuna #_=_ karakterlerini ekliyor. redirect_uri parametresi ayarlanmadıysa ancak bunu ayarladığımda bunu yaptım okudum, aslında facebook'a giriş yaptıktan sonra bu URL'ye başarıyla yönlendirildim.facebook api #el = _ geri dönüşümü için uri

$fbLoginUrl = $fb->getLoginUrl(array(
    'scope' => 'email,publish_stream,user_birthday,user_photos,friends_photos', 
    'redirect_uri' => 'http://myapp.net/auth' 
)); 

Her şey sanırım sadece kozmetik bir şey çalışıyor: İşte

girişle url almak nasıl. Biri bana yardım edebilir mi?

Şimdiden teşekkürler!

+0

ve bir hata burada yayınlandı, http://bugs.developers.facebook.net/show_bug.cgi?id = 20504 – Jashwant

cevap

4

Facebook geliştirici blogunda, açıkça redirect_uri parametresini ayarladıysanız, geri arama uri'ye eklenmiş olan #_=_'u almayacağınız söylendi. Ama durum böyle değil. Bu karakterleri hala redirect_url alanını ayarlamaya alıştırıyorsunuz. Ama bunun akışınızda herhangi bir etkisi olmayacak.

Kontrol bu: Sen sadece bu istemci tarafı kurtulabilirsiniz Session Redirect Behavior - setting redirect_uri explicitely

+0

içten içe yani sanırım facebook başarısızlığı o zaman :( – javiervd

2

.

Sen çıpa olmadan bir URL'ye yönlendirerek sunucu tarafı çözmek diye düşünebilir: çıpa olmadan,

  • facebook bazı yeni URL'ye yönlendirme Sonra http://MyFacebookRedirectUrl...#_=_
  • yönlendirir

.... Ancak, tarayıcı adres çubuğunda #_=_ sihirbaz tarafından yeniden görünür - nasıl?

bakın http://developers.facebook.com/bugs/318390728250352 James Pearce cevabı: O, yeni URL kendisi yoksa

"Bazı tarayıcılar yeni bir URL'ye sonuna bir URL'den karma parçasının ekler onlar (yönlendirildi geçirmektedir karma parçası).

ve ayrıca bu:

http://blogs.msdn.com/b/ieinternals/archive/2011/05/17/url-fragments-and-redirects-anchor-hash-missing.aspx

Firefox, Chrome ve Opera [ve şimdi IE10] HTTP/3xx yeniden yönlendirme gerçekleştikten sonra bir URL Fragment yeniden ekler, hatta rağmen bu parça yönlendirme cevap üzerinde yer başlık tarafından belirtilen URL mevcut değildi

Sadece Facebook yönlendirme sayfanızdan sunucu tarafında yönlendirme yapıyorsanız, bu istemci tarafını kaldırmanız gerekecek.

Diğer alternatif ise sunucu tarafını farklı bir adlandırılmış bağlantı içeren bir URL'ye yönlendirmektir - ancak bu gerçekten sorunu çözmez ve tüm tarayıcılar aynı şeyi yapmaz.