За последние 24 часа нас посетили 18377 программистов и 1591 робот. Сейчас ищут 710 программистов ...

Динамическая обложка ВКонтакте (некорректная работа)

Тема в разделе "PHP для новичков", создана пользователем student442, 28 июн 2019.

  1. student442

    student442 Новичок

    С нами с:
    28 июн 2019
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте, помогите с кодом прошу, дело в том, что сама обложка работает нормально, но через определенное n-ое количество времени, фотография и имя пользователя исчезают с обложки и она остается пустой, и через некоторое временно обратно появляется (a иногда и вовсе нет). Подскажите пожалуйста где ошибка и что не так?

    код:

    PHP:
    1. if($show_top_like or $show_top_comments) {
    2.     setLog('Получаю посты группы');
    3.     $wall_get = getApiMethod('wall.get', array(
    4.         'owner_id' => '-'.$group_id,
    5.         'count' => '50'
    6.     ));
    7.  
    8.     if($wall_get) {
    9.         $wall_get = json_decode($wall_get, true);
    10.  
    11.         $countlike = array();
    12.         $countcomments = array();
    13.        
    14.         foreach($wall_get['response']['items'] as $wall) {
    15.            
    16.             $count = $wall['comments']['count'];
    17.             $offset = 0;
    18.  
    19.             if($count > 0) {
    20.                 while($offset < $count){
    21.                     setLog('Получаю кол-во комментариев к посту '.$wall['id']);
    22.                     $comments_get = getApiMethod('wall.getComments', array(
    23.                         'owner_id' => '-'.$group_id,
    24.                         'post_id' => $wall['id'],
    25.                         'need_likes' => '1',
    26.                         'count' => '100',
    27.                         'offset' => $offset
    28.                     ));
    29.                    
    30.                     if($comments_get) {
    31.                         $comments_get = json_decode($comments_get, true);
    32.  
    33.                         foreach($comments_get['response']['items'] as $comments) {
    34.                            
    35.                             if($date_today == date('Ymd', $comments['date'])) {
    36.                                 if(!isset($countcomments[$comments['from_id']]) and !isset($countlike[$comments['from_id']])) {
    37.                                     $countcomments[$comments['from_id']] = 1;
    38.                                     $countlike[$comments['from_id']] = $comments['likes']['count'];  
    39.                                 } else {
    40.                                     $countcomments[$comments['from_id']]++;
    41.                                     $countlike[$comments['from_id']] += $comments['likes']['count'];
    42.                                 }
    43.                                 var_dump($comments);
    44.                             }
    45.                            
    46.                         }
    47.                     }
    48.  
    49.                     if($offset<$count)
    50.                         $offset = $offset + 100;
    51.                 }
    52.             }
    53.  
    54.         }
    55.     }
    56. }
    57.  
    58.  
    59.  
    60.  
    61.  
    62. if($show_top_like) {
    63. $day_like_top = 0;
    64.  
    65.  
    66. if(count($countlike) > 0) {
    67.     $value = max($countlike);
    68.     $day_like_top = array_search($value, $countlike);
    69.     setLog('Получаю ID кто сумарно набрал большее кол-во лайков к комментариям '.$day_like_top);
    70.  
    71.     if($day_like_top > 0) {
    72.         $user_top_like = getApiMethod('users.get', array(
    73.             'user_ids' => $day_like_top,
    74.             'fields' => 'photo_200'
    75.         ));
    76.  
    77.         if($user_top_like) {
    78.             $user_top_like = json_decode($user_top_like, true);
    79.  
    80.             $top_like_name = $user_top_like['response'][0]['first_name'];
    81.             $top_like_lastname = $user_top_like['response'][0]['last_name'];
    82.             $top_like_photo = $user_top_like['response'][0]['photo_200'];
    83.            
    84.             if(!empty($top_like_name) && !empty($top_like_lastname) && !empty($top_like_photo)){
    85.                 DownloadImages($top_like_photo, 'header/top_likes.jpg');
    86.             }
    87.         }
    88.     }
    89. }
    90.  
    91. if($show_top_comments) {
    92.     $day_comment_top = 0;
    93.  
    94.  
    95.  
    96. if(count($countcomments) > 0) {
    97.         $value = max($countcomments);
    98.         $day_comment_top = array_search($value, $countcomments);
    99.         setLog('Получаю ID кто суммарно написал больше всех комментариев '.$day_comment_top);
    100.  
    101.         if($day_comment_top > 0) {
    102.             $user_top_comment = getApiMethod('users.get', array(
    103.                 'user_ids' => $day_comment_top,
    104.                 'fields' => 'photo_200'
    105.             ));
    106.  
    107.             if($user_top_comment) {
    108.                 $user_top_comment = json_decode($user_top_comment, true);
    109.  
    110.                 $top_comment_name = $user_top_comment['response'][0]['first_name'];
    111.                 $top_comment_lastname = $user_top_comment['response'][0]['last_name'];
    112.                 $top_comment_photo = $user_top_comment['response'][0]['photo_200'];
    113.                
    114.                 // Скачиваем фото
    115.                 if(!empty($top_comment_name) && !empty($top_comment_lastname) && !empty($top_comment_photo)){
    116.                     DownloadImages($top_comment_photo, 'header/top_comments.jpg');
    117.                 }
    118.             }
    119.         }
    120.     }
    121. }