Ben aynı problem vardı. Bunu düzeltmek için, FB yetkilendirme sayfasına kullanıcıyı yönlendirmek için JS kullanmak gerekir, sonra FB geri app sayfa doğrulanmış kullanıcının geçmesine izin verin. Bunun için JS API kullanmak gerekmez.
İlk olarak, FB uygulama ayarları kontrol edin ve emin "Post-Authorize Yönlendirme URL'si" sizin Canvas Page URL ayarlanmış olduğunu olun. (Örneğin http://apps.facebook.com/ [SİZİN APP] /)
Sonra bu gibi kimlik doğrulama işlemek:
$session = $facebook->getSession();
$me = null;
if ($session){
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}
if ($me) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl( array('next'=>"http://apps.facebook.com/[YOUR APP]/"));
}
if (!$me){
print("[html][head]");
print("[script type=\"text/javascript\"]function redirect(){ top.location.href = \"");
print($loginUrl);
print("\"; }[/script][/head]");
print("[body onload=\"redirect();\"]Please wait...[/body][/html]");
exit();
}
(I etiketleri burada görünmesi için nasıl bilmiyorum, bu yüzden köşeli parantez kullanılır. Bu değiştirmek isteyeceksiniz)