Как удалить просроченные маркеры доступа из БД

0
<?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) . "'
");
}
}
}
?>

У меня есть этот код для удаления просроченных токенов доступа из базы данных, но когда я его выполню. Он удаляет все токены доступа одновременно. Который включает в себя действительные и истекли оба токена. Пожалуйста, помогите мне. Как удалить только истек. Извините за запрет на английский. Заранее спасибо

Теги:
facebook-graph-api

3 ответа

0

Изменение Graph.facebook.com на graph.facebook.me решило проблему для меня.

0

попробуйте после изменения

if(!$userData[name]){

в

if(!$userData['name']){
0

Просто проверьте истечение каждого токена, если срок действия токена старше текущей даты, удалите его.

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
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню