Php 将Instagram API订阅保存到数据库中

Php 将Instagram API订阅保存到数据库中,php,mysql,sql,json,instagram,Php,Mysql,Sql,Json,Instagram,我正在尝试将带有特定标签的图片从instagram保存到数据库。 到目前为止,除了写入数据库部分,一切似乎都很好。订阅没问题,我从instagram API网站得到确认: 我使用了本网站中的教程获得了以下代码: 更改了一些部分以反映我的设置,但即使我可以看到请求传入,它也不会向数据库写入任何内容 以下是我的代码: <?php require 'instagram.class.php'; require 'appdb.php'; // Initialize class for

我正在尝试将带有特定标签的图片从instagram保存到数据库。 到目前为止,除了写入数据库部分,一切似乎都很好。订阅没问题,我从instagram API网站得到确认:

我使用了本网站中的教程获得了以下代码:

更改了一些部分以反映我的设置,但即使我可以看到请求传入,它也不会向数据库写入任何内容

以下是我的代码:

    <?php

require 'instagram.class.php';
require 'appdb.php';

// Initialize class for public requests
// EDIT YOUR CODES HERE
$instagram = new Instagram('hashtag');

$myString = file_get_contents('php://input');
$ALL = date("F j, Y, g:i a")." ".$myString."\r\n";
file_put_contents('./activity.log', $ALL, FILE_APPEND);

// this is how I get my next_min_id and this is just an example
// you can code your own script on how to get next_min_id
// EDIT YOUR CODES HERE
$min_id_result = mysql_query("SELECT * FROM `global_option` WHERE `option_variable`='next_min_id'");
//file_put_contents('./activity.log', (string)$min_id_result, FILE_APPEND);

while ($option_row = mysql_fetch_array($min_id_result)) {
    $next_min_id = $option_row['option_value'];

}

// Get hashtag media
$tagMedia = $instagram->getTagMedia('HASHTAG', $next_min_id);

// Display results
// EDIT YOUR CODES HERE
$rows = array();
//var_dump($tagMedia->data)

foreach ((array)$tagMedia->data as $entry) {
    file_put_contents('./activity.log', $tagMedia->data , FILE_APPEND);

    if (empty($entry)) {

        $url = $entry->images->standard_resolution->url;
        $m_id = $entry->id;
        $c_time = $entry->created_time;
        $user = $entry->user->username;
        $filter = $entry->filter;
        $comments = $entry->comments->count;
        $caption = mysql_real_escape_string($entry->caption->text);
        $link = $entry->link;
        $low_res=$entry->images->low_resolution->url;
        $thumb=$entry->images->thumbnail->url;
        $lat = $entry->location->latitude;
        $long = $entry->location->longitude;
        $loc_id = $entry->location->id;
        $media_id = $entry->id;

        // this is how I check if the media_id is already existed in my table
        $result = mysql_query("SELECT * FROM `photos` WHERE `media_id`='$media_id'");

        // if result is 0, I am inserting new row
        if (mysql_num_rows($result)==0) {
          $sql = "INSERT INTO `photos` (source, media_id, std_res, thumbnail, caption, user_id, user_username, user_full_name, user_profile_pic, published) 
                    VALUES ('Instagram',  '{$entry->id}',  '{$entry->images->standard_resolution->url}', '{$entry->images->thumbnail->url}', '{$caption}', '{$entry->user->id}', '{$entry->user->username}', '{$entry->user->full_name}', '{$entry->user->profile_picture}', '1' )";
            mysql_query($sql);
            file_put_contents('./activity.log', $sql , FILE_APPEND);
            if (!mysql_query($sql)){
              die('Error: ' . mysql_error());
            }
        } else {

            //echo 'exist ' . $entry->id;
        }
    }
}
// SETTING THE next_min_id IN MY TABLE
$min_tag_id = $tagMedia->pagination->min_tag_id;


$sql2 = "UPDATE `global_option` SET `option_value`='{$min_tag_id}' WHERE `option_variable`='next_min_id'";
if (!mysql_query($sql2)){
    die('Error: ' . mysql_error());
}

//$challenge = $_GET["hub_challenge"];
//echo $challenge;
//exit(1);
?>

好了,现在问题解决了:

json_编码($tagMedia)


foreach((数组)$tagMedia->data as$entry)

我刚刚发现我缺少发布数据的json\u decode()。我正在尝试,但到目前为止没有积极的结果。。。!json_decode()给出的答案与activity.log中的答案相同,但var_dump()为空。请将您的答案标记为此问题的正确答案,这将有助于其他人查找和跟进。@PrafullaKumarSahu谢谢,如果答案对您有帮助,请投票。我在这里回答类似的问题。
    <?php

require 'instagram.class.php';
require 'appdb.php';

// Initialize class for public requests
// EDIT YOUR CODES HERE
$instagram = new Instagram('hashtag');

$myString = file_get_contents('php://input');
$ALL = date("F j, Y, g:i a")." ".$myString."\r\n";
file_put_contents('./activity.log', $ALL, FILE_APPEND);

// this is how I get my next_min_id and this is just an example
// you can code your own script on how to get next_min_id
// EDIT YOUR CODES HERE
$min_id_result = mysql_query("SELECT * FROM `global_option` WHERE `option_variable`='next_min_id'");
//file_put_contents('./activity.log', (string)$min_id_result, FILE_APPEND);

while ($option_row = mysql_fetch_array($min_id_result)) {
    $next_min_id = $option_row['option_value'];

}

// Get hashtag media
$tagMedia = $instagram->getTagMedia('HASHTAG', $next_min_id);

// Display results
// EDIT YOUR CODES HERE
$rows = array();
//var_dump($tagMedia->data)

foreach ((array)$tagMedia->data as $entry) {
    file_put_contents('./activity.log', $tagMedia->data , FILE_APPEND);

    if (empty($entry)) {

        $url = $entry->images->standard_resolution->url;
        $m_id = $entry->id;
        $c_time = $entry->created_time;
        $user = $entry->user->username;
        $filter = $entry->filter;
        $comments = $entry->comments->count;
        $caption = mysql_real_escape_string($entry->caption->text);
        $link = $entry->link;
        $low_res=$entry->images->low_resolution->url;
        $thumb=$entry->images->thumbnail->url;
        $lat = $entry->location->latitude;
        $long = $entry->location->longitude;
        $loc_id = $entry->location->id;
        $media_id = $entry->id;

        // this is how I check if the media_id is already existed in my table
        $result = mysql_query("SELECT * FROM `photos` WHERE `media_id`='$media_id'");

        // if result is 0, I am inserting new row
        if (mysql_num_rows($result)==0) {
          $sql = "INSERT INTO `photos` (source, media_id, std_res, thumbnail, caption, user_id, user_username, user_full_name, user_profile_pic, published) 
                    VALUES ('Instagram',  '{$entry->id}',  '{$entry->images->standard_resolution->url}', '{$entry->images->thumbnail->url}', '{$caption}', '{$entry->user->id}', '{$entry->user->username}', '{$entry->user->full_name}', '{$entry->user->profile_picture}', '1' )";
            mysql_query($sql);
            file_put_contents('./activity.log', $sql , FILE_APPEND);
            if (!mysql_query($sql)){
              die('Error: ' . mysql_error());
            }
        } else {

            //echo 'exist ' . $entry->id;
        }
    }
}
// SETTING THE next_min_id IN MY TABLE
$min_tag_id = $tagMedia->pagination->min_tag_id;


$sql2 = "UPDATE `global_option` SET `option_value`='{$min_tag_id}' WHERE `option_variable`='next_min_id'";
if (!mysql_query($sql2)){
    die('Error: ' . mysql_error());
}

//$challenge = $_GET["hub_challenge"];
//echo $challenge;
//exit(1);
?>