install.packages("FlickrAPI")So, I think I need some photos in my website, and I have a Flickr account, and I use R.
There should be a library that… Oh yes! found it!
https://koki25ando.github.io/FlickrAPI/
Now I need a Flickr API key. Once I have the key I can save it as an environment variable and call it from R:
library(FlickrAPI)
setFlickrAPIKey(api_key = Sys.getenv("FLICKR_API_KEY"))To install your API key for use in future sessions, run this function with `install = TRUE`.
I can query up to 1000 photos from one user using the getPhotos function. But I figured out that I could use a foreach loop to run and combine multiple queries.
library(foreach)
library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
    filter, lag
The following objects are masked from 'package:base':
    intersect, setdiff, setequal, union
photos <- foreach(
  the_user=c("jferrer", "jferrer", "199798864@N08"), 
  the_page=c(1,2,1),
  .combine = "bind_rows") %do% {
  getPhotos(
    user_id = the_user, 
    img_size="m", 
    extras = c("description", "owner_name", "url_m"), 
    per_page=1000, 
    page=the_page)
}
dim(photos)[1] 964  14
Now I have a collection of photos in R and I can select one by title or any other criteria:
selected_photo <- slice(photos, grep("N/W", title))And combine the R and markdown magic to show the photo in this document:
photo_md <- sprintf(
  "{.preview-image .lightbox}",
  selected_photo$title,
  selected_photo$ownername,
  selected_photo$url_m
)
cat(photo_md)If I want to save the information for future use in my blog, I need first to create a folder to hold the file, and then save the R object into an RDS file. Like this:
here::i_am("posts/foto-collection.qmd")here() starts at /Users/z3529065/proyectos/personal/spatial-one
data_dir <- here::here("Rdata")
if (!dir.exists(data_dir))
  dir.create(data_dir)
file_name <- here::here(data_dir, "flickr-photos.rds")
saveRDS(file = file_name, photos)