2011-03-04 26 views
41

Bu da Giriş düğmesine hale getirecek YaniNasıl Facebook Giriş düğmesi

http://developers.facebook.com/docs/guides/web/

Facebook Giriş butonuna bilgi olan belirli bir URL'ye yönlendirme izin ve içinde oturum açmak için bir kullanıcı tıklayabilirsiniz Facebook (oturum açma penceresi açılacaktır) Ancak, Kullanıcı veya Paylaş düğmelerinin şimdi çalışmasına rağmen Oturum aç düğmesi hala görünmesine rağmen, kullanıcı giriş yaptıktan sonra.

1) Kullanıcı başarıyla giriş yaptıktan sonra bir URL'ye yönlendirmenin bir yolu var mı?
2) diğer bir yolu, olarak göstermek dinamik görünmez veya daha iyisi için Log in düğmesine değiştirmektir "Giriş yapılan [Peter (kullanıcı adı)]"

Nasıl (1) ve/veya (2) yapıldı?

Güncellemesi (I Facebook uygulaması ayarında bir geri arama URL görmüyorum ve ayrıca yönlendirme web sitesinde sayfa A veya sayfa B'den farklı bir URL'ye gitmek gerekebilir): Ben <fb:login-button on-login="top.location = '...'; "> hakkında biraz bilgi buldum ama I() auth.login etkinlik not yönlendirmesi yaparak bazı web sitesine bakın ama Ayrıca bu gibi bazı kod kullanarak giriş yapıldığında yönlendirebilirsiniz) hiçbir on-login='...'

+5

Ben de bunun tarafından şaşırdım. Ayrıca, neden fb için eklenti kalamıyorum: giriş-düğmesi kullanıcı oturum açtıysanız bir çıkış yapmak için yeterince akıllı değil. Kafa karıştırıcı burada kelime değil. Oturum açmış bir kullanıcının "giriş" görmesi gereken tek kullanımlık bir durum göremiyorum. – RichieHH

cevap

38

1 vardır:

<script src="http://connect.facebook.net/en_US/all.js"> 
    </script> 
    <script> 
     FB.init({ 
      appId: '??????????????', cookie: true, 
      status: true, xfbml: true 
     }); 
     FB.Event.subscribe('auth.login', function() { 
      window.location = "http://example.com"; 
     }); 
    </script> 
    <fb:login-button> 
    Login with Facebook 
    </fb:login-button> 

2) göstermek için olup olmadığını belirlemek için veya giriş butonunu gizlemek için'u kullanabilirsiniz.kullanıcı oturum olup olmadığını keşfetmek için aşağıdaki sayfa kullanım olabilir. http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

+0

Bunu sadece PHP SDK kullanarak yapabileceğimi düşündüm, ancak JS SDK'yı da entegre etmek zorundaydım ve bunu kullanıyorum ... ve güzel çalışıyor. Bugün de. – SebiF

+0

, 'auth.login' olayıyla abone oldu, ayrıca girişin başarılı olup olmadığını da belirlemelisiniz. Cevap kodunda kullanıcı, oturum açma başarılı olursa olsun, example.com'a yönlendirilir. – Raptor

2

FBML seçeneği: Bu (FB.init içinde xfbml:true ile) size istediğiniz işlevselliği vermelidir:

<fb:login-button autologoutlink="true" onlogin="OnRequestPermission();"> 
</fb:login-button> 

Kullanıcı giriş yaptığında, "Çıkış" olarak değişir. Ayrıca, kullanıcı uygulamaya izin vermediyse, istek izni iletişim kutusunu açar.

Özel seçeneği: Eğer FBML kullanarak beğenmezseniz, bu gibi kendi Facebook giriş butonuna yapabilirsiniz:

HTML:

<button id="THE_BUTTON">Login</button> 

JavaScript:

FB.init({appId: 'YourAPPID', status: true, cookie: true, xfbml: true, oauth : true}); 
FB.getLoginStatus(function(response) { 
    if (response.status.toString().indexOf("connected")>-1) { 
     initAll(); //User is connected and granted permissions 
     FB.api("/me", function (response) { 
      document.getElementbyId("THE_BUTTON").value = 
              "Logged in as " + response.name; 
     }); 
    } else { 
     // This URL is specially formed to ask permissions for your app. You change the 
     // permissions and your appID 
     //redirect_uri = Change this to your desired callback URL 
     top.location=window.location="http://www.facebook.com/dialog/oauth/?scope=read_stream,publish_stream,friends_photos,friends_activities&client_id="yourAPPID(nobrackets)"&redirect_uri=http://apps.facebook.com/filtered_feed/&response_type=code"; 
    } 
}); 

Kullanıcı giriş yaptıysa, "kullanıcı adı olarak oturum açıldı. ." Aksi takdirde, OAuth Dialog görünecektir.

İlgili konular