我目前正在開發一個使用php sdk和js sdk的facebook應用程序。 (我需要他們兩個)Facebook應用程序:不重定向到iFrame中的OAuth
當用戶還沒有授權應用程序並加載畫布頁面(https://apps.facebook.com/app_name/)時,沒有任何反應,他只是得到一個空白頁面頂部的臉書欄。 但是,如果他加載應用程序的直接網址(https://my_app.mydomain.com),它可以正常工作,並且他被重定向到OAuth對話框。如果他授權應用程序,那麼他將被重定向到https://apps.facebook.com/app_name/並且iframe正確加載。
如果用戶已經授權應用程序,則兩個鏈接都可用(https://apps.facebook.com/app_name/和https://my_app.mydomain.com)。
這裏是我的驗證碼:
<?php
require 'php-sdk/facebook.php';
$facebook = new Facebook(array(
'appId' => '327991330620101',
'secret' => '79asecretcc4300',
'cookie' => true
));
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$params = array(
'scope' => 'publish_stream',
'redirect_uri' => 'https://apps.facebook.com/quiet_quies/'
);
$loginUrl = $facebook->getLoginUrl($params);
header('Location: ' . $loginUrl);
}
有誰對這個想法?這真的讓我發瘋... 感謝您的幫助。
您__can不能將auth對話框加載到任何種類的(i)框架中。使用JavaScript打破它的登錄(腳本元素與'top.location.href = {login_url}'),或使用客戶端登錄,而不是使用JS SDK。 – CBroe
但是,如果用戶沒有授權該應用程序,我的頁面根本就沒有加載,所以我不能在其中放入任何js ... – Linwe
當然,您的應用程序無論如何都會被加載 - 但這取決於您在這種情況下做了什麼,如果事情順利或沒有。如果您仍在使用標題,如腳本中所示,那麼只有帶有FB徽標的頁面纔會加載到框架中。 – CBroe