# Helper function to test a tweet and learn about what is returned by each
# combination of field and expansion.
helper <- function(tweet = "1615009611186069504") {
se <- set_expansions(user = NULL)
sf <- set_fields()
out <- vector("list", (sum(lengths(sf)))*(length(se)))
out_sf <- vector("list", (length(se)))
out_se <- vector("list", sum(lengths(sf)))
i <- 1
for (i_se in seq_along(se)) {
for (i_sf in seq_along(sf)) {
for (i_sfi in seq_along(sf[[i_sf]])) {
sf_test <- list(sf[[i_sf]][i_sfi])
names(sf_test) <- names(sf)[i_sf]
out[[i]] <- tweet_get(tweet,
expansions = se[i_se], fields = sf_test,
parse = FALSE)
out_sf[[i]] <- sf_test
out_se[[i]] <- se[i_se]
i <- i + 1
}
}
}
l2df <- list2DF(list(out = out, fields = out_sf, expansion = out_se))
l2df
}
if (FALSE) {
l2df <- helper()
inc <- lapply(l2df$out, function(x){names(x[[1]]$includes)})
inc[lengths(inc) == 0] <- NA
df <- data.frame(field = unlist(out_sf, recursive = TRUE, FALSE),
expansion = unlist(l2df$expansion),
includes = unlist(inc))
l <- lapply(l2df$out, function(x){
names(list_minus(x[[1]]$data, c("edit_history_tweet_ids", "id", "text")))})
df$data <- l
df <- distinct(df)
}
# Expansions that produces "includes":
# attachments.media_keys, author_id, edit_history_tweet_ids, geo.place_id,
# referenced_tweets.id.author_id
# These fields create a data with its name:
# attachments, conversation_id, created_at, entities, geo, lang,
# public_metrics, possibly_sensitive, reply_settings, author_id
#
# attachments.media_keys is required for any media.fields (go to includes)
# geo.place_id is required for any place.fields (go to includes)
# attachments.poll_ids is required by any poll.fields (go to includes)
# referenced_tweets.id is required by any tweet.fields (go to includes)
# author_id, entities.mentions.username, in_reply_to_user_id, referenced_tweets.id.author_id is required by any user.fields (go to includes)
#
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.