从页面中删除应用程序时的Facebook回调


Facebook Callback when application is removed from page

我目前正在创建一个添加到facebook页面选项卡的应用程序。文档在这里:

http://developers.facebook.com/docs/appsonfacebook/pagetabs/

但是文档中没有提到任何关于应用程序回调的内容。当我的应用程序被删除时,是否有这样的回调会提醒我一个可以用来更新记录的选项卡?

如果重要的话,我目前正在使用PHP。

转到您的应用程序:管理页面->编辑设置->高级然后取消对回调URL 的授权

下面是一个关于如何在代码中取消用户授权的php示例:

require_once(dirname(dirname(dirname(__FILE__))).'/autoload.php');
App::init();
DBConn::init();
error_log("request");
$app_secret = 'yoursecretkey';
$request = parse_signed_request($_POST['signed_request'], $app_secret);
$fbid=$request["user_id"];
error_log($fbid);
if ($fbid) {
    $rec = new ADOdb_Active_Record( "users" );
    $found=$rec->load("id=?",array($fbid));
    if ($found){
        $rec->deauth= 1;
        $rec->save();
    }
}
echo "ok";
function parse_signed_request($signed_request, $secret) {
    list($encoded_sig, $payload) = explode('.', $signed_request, 2);
    // decode the data
    $sig = base64_url_decode($encoded_sig);
    $data = json_decode(base64_url_decode($payload), true);
    if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
        error_log('Unknown algorithm. Expected HMAC-SHA256');
        return null;
    }
    // check sig
    $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
    if ($sig !== $expected_sig) {
        error_log('Bad Signed JSON signature!');
        return null;
    }
    return $data;
}
function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_', '+/'));
}

如果用户第一次取消授予您的应用程序权限,我不相信会有这样的回调。

当你下次尝试在你的网站上对用户进行身份验证,但验证没有成功时,你就知道他们有:

  • 已取消您的应用程序的身份验证
  • 或者fb代币已经60天没有使用了

因此,用户应该重新验证您的应用程序。

编辑:我所说的网站是指应用程序。英语不及格。