Instagram API - 如何查看最后一页的最后一条记录?

时间:2015-11-20 18:25:57

标签: php api recursion instagram instagram-api

我第一次使用Instagram API并且第一次使用社交媒体API,因此我对如何从API调用和读取数据有非常基本的了解。所以我创建了一个递归函数来调用下一页并读取数据。现在,我正在为Media ID, Comments Counts, Likes Counts数据库表中的下一页存储每个帖子数据instagram。现在,当API到达最后一页并将所有记录插入schedule表时,我想将另一条记录插入到我的instagram表中。我在下面添加我的代码,如果有人指导我使代码更合适,我会很高兴:)

我的代码工作:

public function User($next=null){

    global $TotalHashTagPosts; // Total hashtag post counts
    global $CommentsSum; // Sum of comments
    global $LikesSum; // Sum of likes

    $AccessToken = ACCESS_TOKEN;
    $url = "https://api.instagram.com/v1/users/481959735/media/recent/?access_token=".$AccessToken;

    if($url !== null) {
        $url .= '&max_tag_id=' . $next;
    }

    $Ch = curl_init();
    curl_setopt($Ch, CURLOPT_URL, $url);
    curl_setopt($Ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($Ch, CURLOPT_TIMEOUT, 20);
    curl_setopt($Ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($Ch, CURLOPT_SSL_VERIFYPEER, 0);
    $Result = curl_exec($Ch);
    curl_close($Ch);
    $Result = json_decode($Result);

    if(isset($Result->data)){
        $Data = $Result->data;

        for($i=0; $i<count($Data); $i++){
            if(empty($Data)){
                continue;
            }

            $LikesSum = $Data[$i]->likes->count; // Get likes total per media
            $CommentsSum = $Data[$i]->comments->count; // Get comments total per media
            $InstagramId = $Data[$i]->user->id; // Get media instagrammer id
            $MediaId = $Data[$i]->id; // Get media id

            $data = array(
                'instagram_id' => $InstagramId,
                'media_id' => $MediaId,
                'comments_count' => $CommentsSum,
                'likes_count' => $LikesSum,
                'created_date' => date(DATE_YYYYMMDDHMS_24),
                'status' => '1'
            );
            $this->db->insert('instagrammer_table', $data);

            if($this->db->affected_rows() > 0){
                echo "Insert successful";
            }else{
                echo "Failed to insert record";
            }
        }

        if(isset($Result->pagination->next_url) && !empty($Result->pagination->next_url)){
            $next = $Result->pagination->next_url;
            $this->User($next);
        }else{
            $NextUrl = "";
        }
    }
}

0 个答案:

没有答案