0

flickr の写真を自分の Web ページに追加しようとはしていません。json コールバックから緯度と経度の値を取得しようとしています。

これは私がこれまでに持っているコードです。ブラウザにロードしても何も起こりません。

<!DOCTYPE html>
<html>
<head>
<title>Flickr Pie Chart</title>
<meta charset="utf-8">
<script type="text/javascript" src="/jquery/jquery-1.3.2.min.js"></script>

<script type="text/javascript">
    $(document).ready(function(){
        $("#driver").click(function(event){
            var apiKey = '[YOUR API KEY]';
            var url = 'http://api.flickr.com/services/rest/&method=flickr.photos.search&api_key=' + apiKey +'&per_page=500&tags=losangeles&has_geo=1&extras=geo,tags&format=json&jsoncallback=?';

            $.getJSON(url, function(data){
                //loop through the results with the following function
                $.each(data.items, function(i,item){
                    var geoData +='latitude:' item.latitude + '' + '<br>';
                    geoData += '' + item.longitude;
                    $('#results').append(geoData);
                });
            });
        });
    });
</script>
</head>

<body>
    <div id = "results"></div>
    <input type="button" id="driver" value="Load Data" />
</body>
</html>
4

2 に答える 2

0

これ

http://api.flickr.com/services/rest/&method=flickr.photos.search&api_key=

する必要があります

http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=

しかし、あなたが得る応答は

<rsp stat="fail"><err code="3" msg="Parameterless searches have been disabled. Please use flickr.photos.getRecent instead."/>

flickr.photos.getRecent を使用するように指示しています

于 2013-10-01T20:22:49.157 に答える
0

私はそれを働かせました。問題の 1 つは、jsoncallback=? 構文エラーのあるjsonpファイルを返していましたが、jsonを返していませんでした。jsonlint.com Web サイトでエラーを見つけました。エラーには、ファイルの先頭に jsonFlickrApi({ がありました。&format=json の後に &nojsoncallback=1 を追加すると、すべて正常に機能しました。値を割り当てる前に、geoData 変数も宣言しました。

コードは次のとおりです。

<!DOCTYPE html>
<html>
<head>
<title>Flickr Pie Chart</title>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>

<script type="text/javascript">

var latitude;
var longitude;

var geoData;


$(document).ready(function(){

  var apiKey = '[YOUR API KEY]';
  var url = 'http://api.flickr.com/services/rest/?&method=flickr.photos.search&api_key='+ apiKey + '&tags=losangeles&has_geo=1&extras=geo,tags&format=json&nojsoncallback=1';

$.getJSON(url, function(data){

//loop through the results with the following function
$.each(data.photos.photo, function(i,item){

  geoData += 'latitude' + ':' + item.latitude + '' + '<br>';
  geoData += 'longitude' + ':' + item.longitude;

$('#results').append(geoData);


});

});

});

</script>
</head>

<body>

<div id = "results"></div>
</body>

</html>
于 2013-10-02T20:12:18.963 に答える