<?php
include'config.php';
$items = mysql_query("SELECT * FROM table");
$thispage = $PHP_SELF;
$num = mysql_num_rows($items);
$per_page = 100;
$start = @$_GET['start'];
if(empty($start)) $start = 0;
?>
<center>
<?php
if($start+$per_page<$num){
?>
[<a href="<?php print("$thispage?start=".max(0,$start+$per_page)); ?>">Delete 100 Tokens</a>]
<?php
}
$result = mysql_query("SELECT * FROM table ORDER BY id LIMIT $start,$per_page");
if($result){
while($row = mysql_fetch_array($result))
{
$token = $row[access_token];
$userData = json_decode(file_get_contents('https://graph.facebook.com/me?access_token='.$token.'&fields=name,id'),true);print($userData[name]).'<br/>';
if(!$userData[name]){
mysql_query("
DELETE FROM
table
WHERE
access_token='" . mysql_real_escape_string($token) . "'
");
}
}
}
?>
У меня есть этот код для удаления просроченных токенов доступа из базы данных, но когда я его выполню. Он удаляет все токены доступа одновременно. Который включает в себя действительные и истекли оба токена. Пожалуйста, помогите мне. Как удалить только истек. Извините за запрет на английский. Заранее спасибо
Изменение Graph.facebook.com
на graph.facebook.me
решило проблему для меня.
попробуйте после изменения
if(!$userData[name]){
в
if(!$userData['name']){
Просто проверьте истечение каждого токена, если срок действия токена старше текущей даты, удалите его.
https://developers.facebook.com/docs/facebook-login/access-tokens/#debug
GET /debug_token?
input_token={input-token}&
access_token={access-token}
отклик
{
"data": {
"app_id": 000000000000000,
"application": "Social Cafe",
"expires_at": 1352419328,
"is_valid": true,
"issued_at": 1347235328,
"scopes": [
"email",
"publish_actions"
],
"user_id": 1207059
}