0

私はlaravelで比較的小さなアプリを構築しています。

現在、ビュー内のコンテナーにさらに多くの画像を読み込むための読み込みボタンを作成しようとしています。

[さらに読み込む] をクリックすると、内部サーバー エラーが発生することを知っている人はいますか?

これが私のセットアップです:

私の画像を見る:

$instagram = new Instagram\Instagram;

    $instagram->setAccessToken($_SESSION['instagram_access_token']);
    $token = $_SESSION['instagram_access_token'];
    //$clientID = $_SESSION['client_id'];

    $current_user = $instagram->getCurrentUser();
    $tag = $instagram->getTag('folkclothing');
    $media = $tag->getMedia(isset($_GET['max_tag_id']) ? array( 'max_tag_id' => $_GET['max_tag_id'] ) : null);


    $liked_media = $current_user->getLikedMedia();
echo '<section id="images">';

    foreach ( $media as $item ) {

        echo '<article class="instagram-image">';
        // define the form and set the action to POST to send the data to this script
        echo '<form class="forms" action="'; echo URL::current(); echo '" method="post">';

            $id = $item->getId();

            echo '<a class="fancybox" href="' . $item->link . '"><img src="' . $item->images->standard_resolution->url . '" /></a>';
            if ( $current_user->likes($item) ){
                echo '<button class="ajax instabtn unlike icon-heart" type="submit" name="action" value="Unlike"></button>';
            } else {
                echo '<button class="ajax instabtn like icon-heart" type="submit" name="action" value="Like"></button>';
            }
            echo '<input type="hidden" name="id" value="'; echo $id; echo '">';

            echo '<p>'; echo $item->likes->count; echo '</p>';
            //echo '<p>'.$item->getId().'</p>';
            //echo '<p>By: <em>' . $item->user->username . '</em> </p>';
            //echo '<p>Date: ' . date('d M Y h:i:s', $item->created_time) . '</p>';
            //echo '<p>$item->comments->count . ' comment(s). ' . $item->likes->count . ' likes. ';

        echo '</form>';
        echo '</article>';
    }
    echo '</section>';

ここでは、instagram クラスが画像を生成し、ループを介して div に配置します。以下は、必要なデータを格納する [さらに読み込む] ボタンです。

さらに読み込むボタン:

echo "<br><button id=\"more\" data-maxid=\"{$media->getNextMaxTagId()}\" data-tag=\"{$tag}\">Load more ...</button>";

そして、次のページで見つけられる画像に関連するデータを格納する ajax ビューがあります。

<?php

// set up autoloader
function app_autoloader($class) {
  include './' . $class . '.php';
}
spl_autoload_register('app_autoloader');

 // Initialize class for public requests
  $instagram = new Instagram\Instagram;

  // Receive AJAX request and create call object
  $tag = $_GET['tag'];
  $clientID = $instagram->getApiKey();


  $media = $tag->getMedia(isset($_GET['max_tag_id']) ? array( 'max_tag_id' => $_GET['max_tag_id'] ) : null);

  $call = new stdClass;
  $call->next_max_id = $maxID;
  $call->next_url = "https://api.instagram.com/v1/tags/{$tag}/media/recent?client_id={$clientID}&max_tag_id={$media->getNextMaxTagId()}";

  // Receive new data
  $media = $instagram->pagination($call);

  // Collect everything for json output
  $images = array();
  foreach ($media->data as $data) {
    $images[] = $data->images->standard_resolution->url;
  }

  echo json_encode(array(
    'next_id' => $media->getNextMaxTagId,
    'images'  => $images
  ));

このページはタグを見つけて、そのタグのメディアを取得し、next_max_id を見つけます。私のjqueryでは、ajax呼び出しを使用してこのデータを取得し、画像をdivにロードしましたが、代わりに次のような内部サーバーエラーが発生しました:

Failed to load resource: the server responded with a status of 500 (Internal Server Error) http://client:8888/ajax?tag=client&max_tag_id=1374869525975&_=137571153802

なぜ結果が得られないのか、誰にも分かりますか?私はそれがそれほど遠くないことを知っています。

乾杯

4

1 に答える 1

0

最後に問題を修正しました。

競合する php 値が適切に取得されず、間違った URL を送信して渡されていました。

最後に、次のように ajax ページを変更しました。

<?php

// set up autoloader
function app_autoloader($class) {
  include './' . $class . '.php';
}
spl_autoload_register('app_autoloader');

// start session
session_start();

if (!isset( $_SESSION['instagram_access_token'] ) ) {
$auth = new Instagram\Auth( $auth_config );
if (isset($_GET['code'])) {
      $_SESSION['instagram_access_token'] = $auth->getAccessToken( $_GET['code'] );
      header( 'Location: ' . REDIRECT_AFTER_AUTH );
      exit;
  } else {
    $auth->authorize();
  }
  exit;
}


  $instagram = new Instagram\Instagram;

  $instagram->setAccessToken($_SESSION['instagram_access_token']);
  $token = $_SESSION['instagram_access_token'];
    //$clientID = $_SESSION['client_id'];

  $current_user = $instagram->getCurrentUser();
  $tag = $instagram->getTag('folkclothing');

  $media = $tag->getMedia(isset($_GET['max_tag_id']) ? array( 'max_tag_id' => $_GET['max_tag_id'] ) : null);
/*   $params = isset( $_GET['max_tag_id'] ) ? array( 'max_tag_id' => $_GET['max_tag_id'] ) : null; */

  /* $media = $tag->getMedia($params); */
  /* $next_page = $media->getNext(); */

/*

  // Receive new data
  $imageMedia = $instagram->pagination($media);
*/

  // Collect everything for json output
  $images = array();
  foreach ($media as $data) {
    $images[] = array($data->images->standard_resolution->url,$data->link,$data->getId(),$data->likes->count);
  }

  echo json_encode(array(
    'next_id' => $media->getNextMaxTagId(),
    'images'  => $images
  ));

これが、ここで同じことをしようとしている人に役立つことを願っています:)

乾杯

于 2013-08-06T10:42:57.420 に答える