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

时间:2012-07-29 16:47:45

标签: php facebook

我目前正致力于创建添加到Facebook页面标签的应用。文档在这里:

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

但文档中没有提到删除应用程序的回调。是否有一个这样的回调,当我的应用程序被删除时,会提醒我一个可用于更新我的记录的标签?

如果重要,我现在正在使用PHP。

2 个答案:

答案 0 :(得分:3)

转到您的应用:管理页面 - >修改设置 - >高级然后取消授权回调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, '-_', '+/'));
}

答案 1 :(得分:0)

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

当您下次尝试在您的网站上对用户进行身份验证并且身份验证失败时,您知道他们有:

  • 删除了您的应用
  • 或者fb令牌已经使用了60天

因此,用户应该重新申请您的应用。

编辑:按网站我的意思是app。英语失败。