我正在开发移动设备,我有一个简单的应用程序,可以在webview中启动页面(没有浏览器工具栏,地址栏等)。由于这个浏览器配置无法真正处理弹出窗口,我如何实现它不是为了启动弹出窗口而是为oauth调用简单的url?此外,我还想在以下代码中使用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 :(得分:2)
使用JS SDK,AFAIK,display =“touch”无法正常工作。这里最好的攻击计划是使用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>
希望这有帮助!