我有一个在我餐厅的信息亭中运行的 facebook 应用程序,它允许用户登记入住。这很好用,如果他们登录并接受所需的权限,那么它就可以让他们在完成后注销而不会出现任何问题。
但是,如果他们不接受这些权限,则无法将其注销。我已经尝试了我能想到的所有内容以及我在 stackoverflow 上可以找到的所有帖子。
如果 auth 没有用户的许可,我该如何注销客户?
我已经使用错误报告向 facebook 报告了这一点,他们已经表示他们正在调查它。只是希望这里的一位天才有一个想法。
我有一个在我餐厅的信息亭中运行的 facebook 应用程序,它允许用户登记入住。这很好用,如果他们登录并接受所需的权限,那么它就可以让他们在完成后注销而不会出现任何问题。
但是,如果他们不接受这些权限,则无法将其注销。我已经尝试了我能想到的所有内容以及我在 stackoverflow 上可以找到的所有帖子。
如果 auth 没有用户的许可,我该如何注销客户?
我已经使用错误报告向 facebook 报告了这一点,他们已经表示他们正在调查它。只是希望这里的一位天才有一个想法。
您应该使用图形 api 中的权限连接来确定用户是否已提供所需的某些权限。如果他们没有,您可以使用相同的条件来呈现登录按钮或不添加范围的流程。
示例:包括当前 php sdk 和当前带有登录按钮 html5 的 js sdk。
*在示例中,我使用 manage_pages 作为所需的权限。*
PHP SDK 3.2.2 初始化。
require '../../src/facebook.php';
$facebook = new Facebook(array(
'appId' => '1111111111111111',
'secret' => 'xxxxxxxxxxxxxxxx',
'cookie' => true, // enable optional cookie support
));
try { $user = $facebook->getUser(); } catch (FacebookApiException $e) { };
PHP代码:
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_accounts = $facebook->api('/me/?fields=permissions');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
PHP条件和HTML5登录按钮
<div id="fb-root"></div>
<script>// current js sdk</script>
<?php if($user && !$user_accounts[permissions][data][0][manage_pages]): ?>
// we know we have a user but no perms so lets render button with out scope.
<div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large"></div>
<?php elseif($user && $user_accounts[permissions][data][0][manage_pages]): ?>
// we know we have a user and they have given perms so render button with scope.
<div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large" data-scope="manage_pages"></div>
<?php elseif(!$user): ?>
// we have no user, flow as new user... or provide 2 buttons lol.
<div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large" data-scope="manage_pages"></div>
<?php endif; ?>