Пользователь Facebook деактивирует приложение

когда пользователь принимает приложение facebook с моего веб-сайта, я сохраняю данные пользователя и информацию о facebook (токен доступа) в базе данных.

когда он удаляет мое приложение из facebook, я хочу удалить деталь из базы данных. как это сделать?

Я могу присвоить URL-адрес Debackhorize Callback. если кто-то удалит приложение, он перенаправит эту страницу. но, wt должен быть здесь кодом для удаления данных из db? Я имею в виду, что при перенаправлении он будет публиковать данные токена доступа, чтобы я мог заряжать токен доступа и удалять эту строку.

В документе аутентификации четко указано:

Деавторизация приложений

Когда пользователь вашего приложения удаляет его в панели приложений или блокирует приложение в ленте новостей, ваше приложение может быть уведомлено, указав URL-адрес для переадресации обратного вызова в приложении разработчика. Во время удаления приложения мы отправим HTTP-запрос POST, содержащий единственный параметр signed_request, который содержит идентификатор пользователя (UID) пользователя, который только что удалил ваше приложение. Вы не получите токен доступа пользователя в этом запросе, и все существующие токены доступа пользователя будут автоматически истекли.

Таким образом, используя функцию signed_request в своем собственном документе:

 <?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); ?> 

Итак, все, что вам нужно сделать, это получить $result["user_id"] запрос вашей БД и удалить запись.

PS: Я бы рекомендовал добавить новое поле, называемое active и просто деактивировать пользователя, а не удалять запись вместе.

РЕДАКТИРОВАТЬ:
Facebook не перенаправляет пользователя на URL-адрес, разрешающий авторизацию! он будет пинговать только:

Facebook ссылается на этот URL, когда пользователь деактивирует ваше приложение

Этот код не работает, хотя он вызывается, когда пользователь деавторизовал приложение, только данные, переданные в функцию, являются «1» (протестированы с помощью тестового пользователя и моей собственной учетной записи FB, когда приложение активно)

file_put_contents ("test.txt", $ fbUserId. "". print_r ($ _ REQUEST ['signed_request']));

в файле test.txt "1"