· 6 years ago · Nov 10, 2019, 10:08 AM
1function search() {
2 let yourAPI_KEY = "54a657a524bbaa7643aadcbdcc0c0b68"; //Personal key to get access to flickr
3 let userKeyword = document.getElementById("userKeyword").value; //Input of user to search for photos
4 let flickrURL = `https://api.flickr.com/services/rest?method=flickr.photos.search&api_key=${yourAPI_KEY}&text=${userKeyword}&per_page=20&format=json&nojsoncallback=1`; //URL to access the flickr with Json as return value
5
6// create lightbox div using js
7const lightbox = document.createElement("div");
8lightbox.id = "lightbox";
9lightbox.border = "5px";
10document.body.appendChild(lightbox);
11
12 //Make API request
13
14 fetch(flickrURL)
15 .then(response => {
16 return response.json(); //Get the url to return response as json format
17 })
18 .then(data => {
19 console.log(data);
20 // Access the properties of the object returned by response
21
22 data.photos.photo.slice(0, 3).forEach(getPic => { //JNP Remove slice
23 var farmId = getPic.farm;
24 var serverId = getPic.server;
25 var id = getPic.id;
26 var secret = getPic.secret;
27
28 //let result = `<img src ="https://farm${farmId}.staticflickr.com/${serverId}/${id}_${secret}.jpg">`;
29 let result = `https://farm${farmId}.staticflickr.com/${serverId}/${id}_${secret}.jpg`;
30 // According to flickr URL format //https://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}.jpg* to retrieve the photos using keywords
31
32 //Parent element
33 let output = document.getElementById("output");
34
35 //New img item
36 let flickrImage = document.createElement("img");
37 flickrImage.src = result;
38
39 flickrImage.addEventListener("click", () => {
40 lightbox.classList.add("active");
41 const img = document.createElement("img");
42 img.src = flickrImage.src;
43 lightbox.appendChild(img);
44 });
45
46 output.appendChild(flickrImage);
47 });
48 })
49 .catch(error => {
50 console.log(error);
51 });
52}