Php 如何注销facebook
我有以下脚本,允许用户使用其facebook帐户登录我的网站,请求适当的权限,如果接受,它将在墙上发布消息:Php 如何注销facebook,php,facebook,facebook-graph-api,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Facebook Php Sdk,我有以下脚本,允许用户使用其facebook帐户登录我的网站,请求适当的权限,如果接受,它将在墙上发布消息: <?php require 'facebook.php'; $facebook = new Facebook(array( 'appId' => 'removed for security reasons', 'secret' => 'removed for security reasons', 'cookie
<?php
require 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'removed for security reasons',
'secret' => 'removed for security reasons',
'cookie' => true,
));
$session = $facebook->getSession();
if ($session) {
if (isset($_GET[id])) {
$post = $facebook->api("/" . $_GET['id'] . "/feed", "POST", array('message' => 'Hello!'));
echo 'A message has been posted on your friends wall';
} else {
$friends = $facebook->api('/me/friends');
foreach ($friends as $key=>$value) {
echo 'You have ' . count($value) . ' friends<br />';
foreach ($value as $fkey=>$fvalue) {
echo 'friend id = ' . $fvalue[id] . ' - friend name = ' . $fvalue[name] . ' - <a href="/stage0.php?id=' . $fvalue[id] . '">post message</a><br />';
}
}
}
} else {
$loginUrl = $facebook->getLoginUrl(array(
'req_perms' => 'publish_stream',
'next' => 'http://'.$_SERVER['SERVER_NAME'].'/stage0.php',
'cancel_url' => 'http://'.$_SERVER['SERVER_NAME'].'/cancel.php',
));
header('Location: '.$loginUrl);
}
?>
然后,我使用以下脚本将用户注销:
<?php
error_reporting( E_ALL | E_STRICT );
ini_set('display_errors', 1);
?>
<?php
session_start();
?>
<html>
<head>
<title></title>
<?php
$_SESSION = array();
session_destroy();
?>
<meta http-equiv="refresh" content="0;index.php">
</head>
<body>
<h1>logout</h1>
</body>
</html>
注销
这会清除我创建的会话,但根本不会将它们从facebook注销。如何清除我创建的会话并将其从facebook注销?从应用程序和facebook注销用户的推荐方法是调用javascript SDK的注销功能
<a href="/auth/logout" onclick="FB.logout();">logout</a>
检查:从应用程序和Facebook注销用户的推荐方法是调用javascript SDK的注销功能
<a href="/auth/logout" onclick="FB.logout();">logout</a>
检查:将此用作注销URL:
这是您的代码:
if(isset($_GET['action']) && $_GET['action'] === 'logout'){
$facebook->destroySession();
}
这会让用户退出应用程序,而不是facebook本身,完全退出facebook,这是不推荐的,因为这会让一些用户感到不安,请将此添加到您的会话中,如果($session){为
$logoutUrl = $facebook->getLogoutUrl();
然后,对于您的注销URL,请使用:
<a href="' . $logoutUrl . '">Logout</a>
将此用作注销URL:
这是您的代码:
if(isset($_GET['action']) && $_GET['action'] === 'logout'){
$facebook->destroySession();
}
这会让用户退出应用程序,而不是facebook本身,完全退出facebook,这是不推荐的,因为这会让一些用户感到不安,请将此添加到您的会话中,如果($session){为
$logoutUrl = $facebook->getLogoutUrl();
然后,对于您的注销URL,请使用:
<a href="' . $logoutUrl . '">Logout</a>
一旦你进入,facebook永远不会让你离开:-P@Guy福克斯——欢迎来到酒店Facebook。@Spudley哈哈,这让我想起了关于Facebook的燕麦卡通,搞笑:-)一旦你进去,Facebook永远不会让你出去:-P@Guy福克斯——欢迎来到酒店Facebook。@Spudley哈哈,它让我想起了关于Facebook的燕麦卡通,hilarious:-)我如何在服务器端做到这一点。我是通过服务器端登录的,因此从服务器端注销对于我的应用程序来说是理想的。您必须同时执行这两项操作,这就是为什么我让服务器端的href/auth/logout,当我在那里接到一个呼叫时,我可以做任何我想做的事情;)onclick javascript函数主要用于c客户端能否请您提供有关/auth/logout的更多信息,因为我不想做这个客户端,我想做这个服务器端。我只是删除会话,服务器端,因为我主要使用zend,我会做一些类似的事情:zend_Registry::get('auth')->clearIdentity()…我如何在服务器端做到这一点。我是通过服务器端登录的,因此从服务器端注销对于我的应用程序来说是理想的。您必须同时执行这两项操作,这就是为什么我让href/auth/logout(位于服务器端)退出,然后当我在服务器端接到呼叫时,我可以做任何我想做的事情;)onclick javascript函数主要用于客户端sidecould请提供关于/auth/logout的更多信息,因为我不想做这个客户端,我想做这个服务器端。我只是删除会话,服务器端,因为我主要使用zend,我会做一些类似的事情:zend_Registry::get('auth')->clearIdentity()…事实上,平台政策要求用户注销Facebook。不是说这有意义,但它确实存在。#6@Ahh,哇,谢谢你指出这一点!就像你说的,这没有意义,如果我在使用Facebook时注销应用程序/网站,我想继续登录Facebook,不知道你是否可以选择og退出应用程序和facebook,将对此进行研究,但感谢您指出。事实上,平台政策要求用户退出facebook。不是说这有意义,但它确实存在。#6@ah,哇,感谢您指出这一点!正如您所说,如果我在使用fa时退出应用程序/网站,这是没有意义的cebook,我想继续登录facebook,不知道你是否可以选择退出应用程序,facebook将对此进行研究,但感谢你指出这一点。