質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。

Q&A

2回答

8564閲覧

Flickrで複数の検索テキストを表示させる方法

shoki1225

総合スコア9

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。

0グッド

0クリップ

投稿2020/03/16 14:19

現在、Web APIの勉強をしており、Flickrを使用して画像を出す方法について困っています。

同じ所に、例えば「犬」と「猫」を5枚づつ表示させるにはどうしたらいいのか分からず困っています。
「text」に['cat'&'dog']や['cat&dog']や['cat,dog']など色々試したのですがイメージのように表示されません。
例として下記のようにコードを書きましたので、分かりやすくご教授のほどよろしくお願い致します。

Flickrで画像を保存して表示ではなく、「text」を使用して表示させたいです。

よろしくお願い致します。

JavaScript

1// Flickr API key 2const apiKey = '//個人のAPIのKey'; 3 4// Flickr画像データのURLを返す 5const getFlickrImageURL = (photo, size) => { 6 let url = `https://farm${photo.farm}.staticflickr.com/${photo.server}/${photo.id}_${ 7 photo.secret 8 }`; 9 if (size) { 10 // サイズ指定ありの場合 11 url += `_${size}`; 12 } 13 url += '.jpg'; 14 return url; 15}; 16 17// Flickr画像の元ページのURLを返す 18const getFlickrPageURL = photo => `https://www.flickr.com/photos/${photo.owner}/${photo.id}`; 19 20// Flickr画像のaltテキストを返す 21const getFlickrText = (photo) => { 22 let text = `"${photo.title}" by ${photo.ownername}`; 23 if (photo.license === '4') { 24 // Creative Commons Attribution(CC BY)ライセンス 25 text += ' / CC BY'; 26 } 27 return text; 28}; 29 30// リクエストパラメータを作る 31const parameters = $.param({ 32 method: 'flickr.photos.search', 33 api_key: apiKey, 34 text: 'cat', // 検索テキスト 35 sort: 'interestingness-desc', // 興味深さ順 36 per_page: 5, // 取得件数 37 license: '4', // Creative Commons Attributionのみ 38 extras: 'owner_name,license', // 追加で取得する情報 39 format: 'json', // レスポンスをJSON形式に 40 nojsoncallback: 1, // レスポンスの先頭に関数呼び出しを含めない 41}); 42const url = `https://api.flickr.com/services/rest/?${parameters}`; 43console.log(url); 44 45// 猫の画像を検索して表示 46$.getJSON(url, (data) => { 47 console.log(data); 48 49 // データが取得できなかった場合 50 if (data.stat !== 'ok') { 51 console.error('データの取得に失敗しました。'); 52 return; 53 } 54 55 // 空の<div>を作る 56 const $div = $('<div>'); 57 58 // ヒット件数 59 $div.append(`<div>${data.photos.total} photos in total</div>`); 60 61 for (let i = 0; i < data.photos.photo.length; i++) { 62 const photo = data.photos.photo[i]; 63 const photoText = getFlickrText(photo); 64 65 // $divに <a href="..." ...><img src="..." ...></a> を追加する 66 $div.append( 67 $('<a>', { 68 href: getFlickrPageURL(photo), 69 class: 'd-inline-block', 70 target: '_blank', // リンクを新規タブで開く 71 'data-toggle': 'tooltip', 72 'data-placement': 'bottom', 73 title: photoText, 74 }).append( 75 $('<img>', { 76 src: getFlickrImageURL(photo, 'q'), 77 width: 150, 78 height: 150, 79 alt: photoText, 80 }), 81 ), 82 ); 83 } 84 // $divを#mainに追加する 85 $div.appendTo('#main'); 86 87 // BootstrapのTooltipを適用 88 $('[data-toggle="tooltip"]').tooltip(); 89});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

変数を2つつくって、例えば、犬の画像、猫の画像ってやるみたいですよ。
多分shoki1225さんと僕は、同じオンラインコースをやってるっぽいですね。
お互い、頑張りましょう。

// リクエストパラメータを作る
const parametersdog = $.param({

...

// リクエストパラメータを作る
const parameterscat = $.param({
...

投稿2020/08/14 09:54

Nish

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

スマホからなので簡単に。あとドキュメント読んだだけで試して無いです。

1.単にdog5枚とcat5枚を分けてsearchするだけでは?

2.textでは複数キーワードでの検索は出来ないそうで、tagsとtag_modeを使ってねと言うことらしい。複数タグ指定したときでも、dogとcatが指定枚数づつ出るとは限らないと思う。
https://www.flickr.com/groups/51035612836@N01/discuss/72157692623543064/

https://www.flickr.com/services/api/flickr.photos.search.html

例として下記のようにコードを書きましたので、分かりやすくご教授のほどよろしくお願い致します。

ところで質問に書いてあるコードは何をしているのか理解してます?

投稿2020/03/16 17:15

編集2020/03/17 23:40
oikashinoa

総合スコア2826

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問