IFrame App Facebook require_login ()

2 Cevap php

Ben iframe uygulama ile ciddi bir sorunumuz var. Ben FMBL uygulama yapılamaz pek çok dış JS kütüphaneleri ve diğer dinamik stuuf kullanmanız gerekir. Ben require_login çağırdığınızda () tamam olduğu, uygulama zaten yüklü olmadığı zaman diyalog kurmadan applicaition olsun. Ama sonra yetkilendirme uygulama çok yüklü auth_token gibi parametreleri, ve sonsuz bir yönlendirme döngüye girer sonra. Halt FB neler oluyor ... Dün bunu düzeltmek başardı, ama bugün yine kırıldı? Bu net bulunan olanlardan hiçbiri çalışıyor görünmüyor, bir sollution bulmak için bana deli ediyor.

Şimdiye kadar denedim:

http://abhirama.wordpress.com/2010/03/07/facebook-iframe-xfbml-app/ (7th march 2010!) http://forum.developers.facebook.com/viewtopic.php?pid=156092 http://www.keywordintellect.com/facebook-development/how-to-set-up-a-facebook-iframe-application-in-php-in-5-minutes/

http://www.markdeepwell.com/2010/02/validating-a-facebook-session-within-an-iframe/ http://forum.developers.facebook.com/viewtopic.php?pid=210449 http://www.ajaxlines.com/ajax/stuff/article/facebook_fbml_rendering_in_iframe_application.php http://www.aratide.com/php/solving-the-break-out-issue-in-iframe-facebook-applications/

None of the above worked... According to those and some FB docs: http://wiki.developers.facebook.com/index.php/FB_RequireFeatures http://wiki.developers.facebook.com/index.php/Cross_Domain_Communication_Channel

Benim örnek testi dosyaları aşağıdaki gibi görünecektir:

<?php
//Link in library.
require_once '../application/vendor/Facebook/facebook.php';

//Authentication Keys
$appapikey = 'XXXX';
$appsecret = 'XXXX';

//Construct the class
$facebook = new Facebook($appapikey, $appsecret);

//Require login
$user_id = $facebook->require_login();

?>

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
  <title></title>
</head>
<body>
  <script src="http://static.ak.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>
  This is you: <fb:name uid="<?php echo  $user_id?>"></fb:name>
  <?php var_dump($facebook->$this->facebook->api_client->friends_get())?>
  <script type="text/javascript">
 FB_RequireFeatures(["XFBML"], function(){
  FB.Facebook.init("<?=$appapikey?>", "xd_receiver.html");
 });
  </script>
</body>
</html>

Ve çapraz etki alanı dosyası xd_receiver.html olduğunu:

<!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>cross-domain receiver page</title>
  </head>
  <body>
    <script src="http://static.ak.facebook.com/js/api_lib/v0.4/XdCommReceiver.js" type="text/javascript"></script>
  </body>
</html>

Nasıl I çalışma alabilirim?

Ben url ile bunu yapmak için Kohana çerçevesini kullanarak ve şimdiden yerini header ('Location') ben :: facebook php kütüphanesinde () yönlendirme.

2 Cevap

Eğer bakıyoruz öğreticiler bir sürü çok out-of-date. Facebook API ve beraberindeki SDK'ler oldukça hızla değiştirmek ve o "eski" yollarla bir şeyler yapmak mümkün değil anlamına gelmez iken, bu yollar, kırık kalktı, kaldırılmış olması daha muhtemeldir, az ya da çok iyi belgelenmiştir.

Son PHP SDK için daha iyi destek deneyin yükseltme için: https://github.com/facebook/php-sdk/

Then you can use this example as a base for what you're trying to do: https://github.com/facebook/php-sdk/blob/master/examples/example.php

Bu bir giriş bağlantı ile kullanıcıya sunuyor, ama size sadece giriş yapmış kullanıcılar içeriğini gösteren, giriş zorlamak isteyen bir bağlamda iseniz (taklit eski require_login), değiştirmek olabilir:

// Login or logout url will be needed depending on current user state.
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}

ile:

// Get logout URL, or redirect user to login URL
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  header('Location: ' . $facebook->getLoginUrl()) ;
}

Facebook birçok HTML etiketleri kullanımını kısıtlar. Bu sizin kod sınırlı bazı etiketleri kullanıyor gibi görünüyor. Bu kaldırarak denediniz mi?

Eğer bunun yerine FBML bir iframe uygulama yapmak (örn için <body>) bu etiketleri kullanmak istiyorum ...