Hallo zusammen,
ich Entwickle momentan eine kleine Facebook Seite für jemanden. Die Anforderungen sind, dass diese Seite in einem iFrame Tab auf der "Unternehmensseite" (Chronik) erreichbar sein soll, wenn man nicht eingeloggt ist sich via Facebook Login einloggen kann und wenn man kein Fan ist, dass man die Inhalte erst sieht, wenn man die Seite Liked.
Jetzt stehe ich vor dem Problem, dass es soweit eigentlich funktioniert, allerdings nicht Browserübergreifend...
Hier kommt jetzt der relevante Code:
Kann mir da jemand weiterhelfen?
LG
Pit
ich Entwickle momentan eine kleine Facebook Seite für jemanden. Die Anforderungen sind, dass diese Seite in einem iFrame Tab auf der "Unternehmensseite" (Chronik) erreichbar sein soll, wenn man nicht eingeloggt ist sich via Facebook Login einloggen kann und wenn man kein Fan ist, dass man die Inhalte erst sieht, wenn man die Seite Liked.
Jetzt stehe ich vor dem Problem, dass es soweit eigentlich funktioniert, allerdings nicht Browserübergreifend...
- Im IE hab ich das Problem, das nachdem per oAuth erlaubt wurde, oder per Facebook eingeloggt wurde, die Seite anscheinend immer weitergeleitet wird und der Popup sich erneut öffnet, allerdings innerhalb von Millisekunden auch wieder schließt.
- Im Firefox/Chrome geht es, außer das der Popup vom oAuth/Login geblockt wird.
- Im Safari wird der oAuth in einem Tab, anstatt in einem Popup geöffnet, funktioniert aber nach erlauben bzw. einloggen.
- In Opera öffnet sich der oAuth auch in einem Tab anstatt in einem Popup. Wenn man sich allerdings einloggt bzw. die App erlaubt, bleibt der Tab offen und die Seite lädt sich nicht neu, man muss sie von Hand aktualisieren.
Hier kommt jetzt der relevante Code:
PHP-Code:
<?php
require_once('./classes/facebook/facebook.php');
require_once('./classes/facebook/facebookhandler.class.php');
require_once('./app/mapping.php');
define(PAGE_ID, 'xxx');
define(APP_ID, 'xxx');
define(SITE_SECRET, 'xxx');
define(REDIRECT_URI, 'xxx');
$facebook = new Facebook(array(
'appId' => APP_ID,
'secret' => SITE_SECRET,
'cookie' => true
));
// access Token
$accessToken = $facebook->getAccessToken();
// own uri
$uri = 'http'. ($_SERVER['SERVER_PORT'] != "80" ? 's' : null) .'://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
// user
$user = $facebook->getUser();
include './templates/global/header.tpl';
if($user)
{
try
{
$userProfile = $facebook->api('/me');
}
catch (FacebookApiException $e)
{
$user = null;
$userProfile = false;
}
}
else
{
$userProfile = false;
}
if ($userProfile)
{
$facebookHandler = new facebookhandler();
$facebookHandler->setLikeStatus($facebook->api($user.'/likes/' . PAGE_ID));
$facebookHandler->setUser($facebook->api("/me"));
$like = $facebookHandler->getLikeStatus();
if($like)
{
$ret = true;
}
else
{
$ret = false;
}
}
else
{
$ret = false;
echo '
<script src="http://connect.facebook.net/en_US/all.js"></script>
<div id="fb-root"></div>
<script>
FB.init({
appId: "' . APP_ID . '",
xfbml: true,
cookie: true,
oauth: true
});
FB.login({scope: "publish_stream"});
FB.Event.subscribe("auth.login", function(response) {
window.setTimeout(function () {
location.reload(true);
},0);
});
</script>
<fb:login-button></fb:login-button>';
}
LG
Pit
Kommentar