在php中提取instagram照片


Pulling instagram photos in php

我要把头发拔出来了。谁能帮我把这个工作,我敢肯定这是愚蠢的…我已经得到了所有的PHP错误消失,但我不能得到图像显示。下面的代码…

    <!DOCTYPE html>
<html>
    <link rel="stylesheet" href="jquery.fancybox-1.3.4.css" type="text/css">
    <script type='text/javascript' src='jquery.min.js'></script>
    <script type='text/javascript' src='jquery.fancybox-1.3.4.pack.js'></script>
    <script type="text/javascript">
        $(function() {
            $("a.group").fancybox({
                'nextEffect'    :   'fade',
                'prevEffect'    :   'fade',
                'overlayOpacity' :  0.8,
                'overlayColor' : '#000000',
                'arrows' : false,
            });         
        });
    </script>
    <?php
        // Supply a user id and an access token
        $userid = "1d458ab0c149424c812e664c32b48149";
        $accessToken = "c195717e379f48c68df451cc3d60524a";
        // Gets our data
        function fetchData($url){
             $ch = curl_init();
             curl_setopt($ch, CURLOPT_URL, $url);
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
             curl_setopt($ch, CURLOPT_TIMEOUT, 20);
             $result = curl_exec($ch);
             curl_close($ch); 
             return $result;
        }
        // Pulls and parses data.
        $result = fetchData("https://api.instagram.com/v1/users/{$userid}/media/recent/?access_token={$accessToken}");
        $result = json_decode($result);
    ?>

    <?php if(!empty($result->data)): ?>
    <?php foreach ($result->data as $post){ ?>
    <!-- Renders images. @Options (thumbnail,low_resoulution, high_resolution) -->
    <a class="group" rel="group1" href="<?= $post->images->standard_resolution->url ?>"><img src="<?= $post->images->thumbnail->url ?>"></a>
    <?php } ?>
    <?php endif ?>
</html>

你需要的是在不同的点添加一些检查,以找出从Instagram返回的内容并处理任何问题。在调试时,将var_dump()粘贴到所有地方可以帮助查看问题所在。

下面是一个带有一些额外检查的PHP节示例:

<?php
    // Supply a user id and an access token
    $userid = "USER ID";
    $accessToken = "ACCESS TOKEN";
    // Gets our data
    function fetchData($url){
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
         curl_setopt($ch, CURLOPT_TIMEOUT, 20);
         $result = curl_exec($ch);
         $info = curl_getinfo($ch);
         // Check a response was returned
         if ($info['http_code'] == '404') {
             echo ('Error: HTTP 404 returned, bad request');
             die();
         }
         curl_close($ch); 
         return $result;
    }
    // Pulls and parses data.
    $result = fetchData("https://api.instagram.com/v1/users/{$userid}/?access_token={$accessToken}");
    $result = json_decode($result);
    // Check the json_decode succeeded
    if (empty($result)) {
        echo "Error: JSON not returned from API";
        die();
    }
    // Check no error was returned from Instagram
    if ($result->meta->code != 200) {
        echo "Error: ".$result->meta->error_message;
        die();
    }
?>

如果你打算用Instagram API做很多工作,你可能想看看一个库来完成大部分繁重的工作。这种似乎是目前最流行的。