Php Facebook用户取消该应用程序的授权
当用户从我的网站接受facebook应用程序时,我将用户详细信息和facebook详细信息(访问令牌)存储在数据库中 当他从facebook上删除我的应用程序时,我想从数据库中删除细节。如何做到这一点Php Facebook用户取消该应用程序的授权,php,facebook,Php,Facebook,当用户从我的网站接受facebook应用程序时,我将用户详细信息和facebook详细信息(访问令牌)存储在数据库中 当他从facebook上删除我的应用程序时,我想从数据库中删除细节。如何做到这一点 我可以给出取消授权的回调url。如果有人删除应用程序,它将重定向到此页面。但是,wt应该是从db中删除数据的代码吗?我的意思是,当它重定向时,它会发布访问令牌的详细信息,这样我就可以从访问令牌中收费并删除该行。它在: 应用程序取消授权 当应用程序的用户在中删除它时 应用程序仪表板或在中阻止应用程序
我可以给出取消授权的回调url。如果有人删除应用程序,它将重定向到此页面。但是,wt应该是从db中删除数据的代码吗?我的意思是,当它重定向时,它会发布访问令牌的详细信息,这样我就可以从访问令牌中收费并删除该行。它在: 应用程序取消授权 当应用程序的用户在中删除它时 应用程序仪表板或在中阻止应用程序 在新闻提要中,您的应用程序可以 通过指定取消授权通知 开发人员应用程序中的回调URL。 在应用程序删除过程中,我们将发送 HTTP POST请求包含一个 参数,已签名的\u请求,其中 包含用户的用户id(UID) 刚刚删除了你的应用程序。你会 未在中接收用户访问令牌 此请求和所有现有用户 访问令牌将被自动删除 过期了 因此,在自己的文档中使用函数:
<?php
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, '-_', '+/'));
}
$result = parse_signed_request($_REQUEST['signed_request'],"APP_SECRET");
$myFile = "deauthorize.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $result["user_id"] . "\n");
fclose($fh);
?>
此代码不起作用,尽管当用户取消应用程序的授权时会调用此代码,但传递到函数中的唯一数据是“1”(在应用程序运行时使用测试用户和我自己的FB帐户进行测试)
文件内容(“test.txt”,“fbUserId.”。打印($请求['signed请求]))
在test.txt文件“1”中,只需在此处写下问题,即可找到答案。制作一个页面,通过电子邮件向您发送$\u REQUEST/$\u GET/$\u POST的内容。将其设置为您的回调URL。授权,然后取消授权。查看电子邮件,你就会确切地知道你有哪些可用数据。这正是你所需要的。别忘了用实际的应用程序秘密替换应用程序秘密。