2011-09-08 52 views
1

我正在爲手機開發,我有一個簡單的應用程序,在web視圖中啓動一個頁面(沒有瀏覽器工具欄,地址欄等)。由於這個瀏覽器配置不能真正處理彈出窗口,我怎麼能實現它不啓動一個彈出窗口,而是一個簡單的URL調用oauth?並且我還想在以下代碼中使用display =「touch」功能:fb.login從新手的問題 - 如何實現display = touch?

jQuery(document).ready(function($){ 
if (window.FB) { 
    FB.init({appId: '123456789000000', 
     status: true, 
     cookie: true, 
     xfbml: true}); 
    $('html').attr('xmlns:og', 'http://opengraphprotocol.org/schema/'); 
    $('html').attr('xmlns:fb', 'http://www.facebook.com/2008/fbml'); 
} 
}); 

function fbc_login() { 
    if (window.FB) { 
     FB.login(function(response) { 
      if (response.session) { 
       window.location = 'http://www.mobii.hu/'; 
       } 
      }, 
      { perms: 'email' 
      }); 
    } 
}; 
function fbc_logout() { 
    if (window.FB) { 
     FB.logout(function(response) { 
      window.location = 'http://www.mobii.hu/index.php?option=com_comprofiler&task=logout&Itemid=2'; 
      }); 
     } 
    }; 
function fbc_unjoin() { 
    if (window.FB) { 
     if (confirm('Are you sure you want to unjoin http://www.mobii.hu?')) { 
     FB.api({ 
      method: 'Auth.revokeAuthorization' }, function(response) {window.location = 'http://www.mobii.hu/';}); 
     } 
    } 
}; 

jQuery(document).ready(function($){ 
    if (window.FB) { 
     FB.logout(function(response) {}); 
    } 
}); 

非常感謝提前!

+0

謝謝你這麼好! :) – iUsable

回答

2

AFAIK,display =「touch」使用JS SDK無法正常工作。這裏最好的攻擊計劃是將Facebook PHP SDK與JavaScript SDK協調使用的組合。這個想法是使用PHP SDK的內置方法getLoginUrl()根據您的應用程序的配置,請求的權限等來生成登錄URL,然後將該URL傳遞給您的JavaScript函數。

的PHP:

<?php 
include('facebook.php'); 

$facebook = new Facebook(array(
    'appId' => YOUR_APP_ID, 
    'secret' => YOUR_APP_SECRET 
)); 

$loginUrl = $facebook->getLoginUrl(array(
    'req_perms' => 'email', // Non-OAuth 2.0 apps. 
    /* 'scope' => 'email', */ // OAuth 2.0 apps. 
    'display' => 'touch' 
)); 
?> 

而且你fbc_login()函數應該簡單地:

<script type="text/javascript"> 
    function fbc_login() { 
     document.location='<?php print $loginUrl; ?>'; 
    } 
</script> 

希望這有助於!

+0

你剛剛救了我約45分鐘的生活。尊重。 – iUsable