1

私はInstagramにこの構造を使用しています:

<?php
        // Supply a user id and an access token
        $userid = "--user--";
        $accessToken = "--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);
             curl_close($ch); 
             return $result;
        }

        // Pulls and parses data.
        $result = fetchData("https://api.instagram.com/v1/users/--user--/media/recent/?access_token=--token--");
        $result = json_decode($result);
    ?>


    <?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 endforeach ?>

しかし、このプリント:

警告:40行目の/home/mysite/index.phpのforeach()に無効な引数が指定されました

40.line:

<?php foreach ($result->data as $post): ?>

この構造の何が問題になっていますか?

この構造はhttp://www.blueprintinteractive.com/blog/how-instagram-api-fancybox-simplifiedです。

4

3 に答える 3

1

さて、チェックするだけです-あなたのコードでは、あなたはとを持って$userid = "--user--"$accessToken = "--token--"ます、そしてURLではあなたは--user--そして--token--再び-あなたはそれらを$useridとで置き換えてい$accessTokenますか?そうでない場合、問題は単にInstagramがエラーを返していることである可能性があり、その結果、コードが失敗します。

上記を考慮しても何も得られない場合は$result->data、ループの前の値(var_dump($result->data))を出力して、変数に何が含まれているかを確認してください。

上記で何も表示されない場合は、試してください-が失敗し、が表示さvar_dump($result)れる可能性があります。json_decode()false

が配列であり、データがないというだけの場合$result->data(結果がない場合にInstagramが再実行するかどうかはわかりません)、foreach()ループの前に配列が空かどうかを確認するチェックを追加します。

<!-- This will output the contents of '$result->data' - let us know what it is -->
<?php var_dump($result->data)`) ?>

<?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 endforeach ?>
<?php endif ?>
于 2012-10-30T12:59:12.493 に答える
1
<?php
        // Supply a user id and an access token
        $userid = "*****";
        $accessToken = "*********";

        // 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 endforeach ?>
<?php endif ?>

それが動作するオンラインコンパイラでこれを試しました。

于 2014-04-27T01:47:32.227 に答える
1
<?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 endforeach ?>

これは間違った構文です。次のように置き換えます。

<?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 } ?>
于 2015-06-03T16:11:27.907 に答える