R:上传图片到imgur

R: upload images to imgur

我有一个包含一些图像的文件夹(.png 和 .jpg)。我的目标是将它们全部上传到 imgur.com 并取回每个链接或 ID。

我尝试安装 imguRimgur_upload 这两个软件包,但未能安装它们。

有什么快速解决方法吗?

你可以用 knitr 做到这一点。这将上传一张图片和 return 你的 URL:

setwd("yourWD")
install.packages(knitr)
install.packages("RCurl")
install.packages("XML")
knitr::imgur_upload("fish2.jpg", key = "Yourimguraccountkey")

首先,如果您在默认浏览器中登录了您的 imgur 帐户,请注销。在 R 中,尝试

tkn <- imgur_login()

您的浏览器将尝试打开:

https://api.imgur.com/oauth2/authorize?response_type=code&client_id=1babd0decbb90f2&redirect_uri=http%3A%2F%2Flocalhost%3A1410%2F&state=yVKVeDejjB

并报错:

{"data":{"error":"redirect_uri_mismatch","request":"\/oauth2\/authorize","method":"GET"},"success":false,"status":400}

删除url结尾,留下:

https://api.imgur.com/oauth2/authorize?response_type=code&client_id=1babd0decbb90f2

现在您将看到使用您的用户名和密码登录的屏幕,然后您将获得:

Authentication complete. Please close this page and return to R.

#upload images
listoffileIDs <- character()
mylistf <- list.files(pattern = ".jpg|.png")

lapply(seq_along(mylistf), function(i)
{
  y <- upload_image(mylistf[[i]], token = tkn)
  Sys.sleep(5)
  listoffileIDs[[i]] <<- paste(unlist(account_images(token = tkn))[[1]])
  y
})
data.frame(mylistf = mylistf, listoffileIDs = listoffileIDs)

#add images to new album
firstalbum <-  create_album(listoffileIDs, title = "firstalbum",
               privacy = "hidden" , token = tkn)
firstalbum$id # album id

# add images to extant album https://imgur.com/a/ALBUMID
# example: get ID of first album
firstalbum <- account_albums(token = tkn)[[1]]#
add_album_images(firstalbum, listoffileIDs, token = tkn)