knitr::opts_chunk$set(echo = TRUE) library(connectapi) client <- connect(prefix = "TEST_1") options("connectapi_disable_experimental_warnings" = TRUE)
To understand how tags work with connectapi
, you must first understand tags in
RStudio Connect.
As always, get started by defining the CONNECT_SERVER
and CONNECT_API_KEY
variables, then initialize an API client.
library(connectapi) client <- connect()
NOTE: This example report will create a few tag hierarchies and then use them. As a result, to use this example verbatim requires admin privileges and will create tags on your server.
To get started, we will create a tag tree to show how things work. The
create_tag()
helper allows you to create a singular tag (by specifying its
parent, etc.). For our purposes, create_tag_tree()
is easier, since it
creates the entire tree specified at once.
start_tags <- get_tags(client) start_tags
# Protect against tags already existing if ("DemoProject" %in% names(start_tags) || "DemoAudience" %in% names(start_tags)) { stop("ERROR: One of the demo tags already exist for you! Beware lest they be deleted by this demo") }
tree_project_1 <- create_tag_tree(client, "DemoProject", "project_1") tree_project_1 tmp_tags <- get_tags(client) tree_project_2 <- create_tag(client, name = "project_2", parent = tmp_tags$DemoProject) tree_project_2 tree_audience_1 <- create_tag_tree(client, "DemoAudience", "Sales") tree_audience_2 <- create_tag_tree(client, "DemoAudience", "Finance") get_tags(client)
In order to show how tags work, we need some content to work with.
bnd <- bundle_static(system.file("logo.png", package = "connectapi")) content_1 <- deploy(client, bnd) content_2 <- deploy(client, bnd)
Content 1 is for project_1
and Sales
, so let's set the tags!
There are a few ways to do so.
all_tags <- get_tags(client) set_content_tag_tree(content_1, "DemoProject", "project_1") set_content_tags(content_1, all_tags$DemoAudience$Sales)
Content 2 is for project_2
and both Audiences (Sales
and Finance
).
set_content_tags( content_2, all_tags$DemoProject$project_2, all_tags$DemoAudience$Sales, all_tags$DemoAudience$Finance )
In order to see the tags associated with content, use get_content_tags()
.
The data structure is the same as get_tags()
, but the "whole list" is filtered
to only the tags that are associated with a piece of content.
c1_tags <- get_content_tags(content_1) c1_tags c2_tags <- get_content_tags(content_2) c2_tags
Once tags have been defined, you can also search for all of the content associated with a tag.
content_list_by_tag(client, all_tags$DemoAudience$Sales) content_list_by_tag(client, all_tags$DemoProject$project_1) content_list_by_tag(client, all_tags$DemoProject)
Now we will clean up the demo tags that we created.
# Protect against tags already existing if ("DemoProject" %in% names(start_tags) || "DemoAudience" %in% names(start_tags)) { stop("ERROR: One of the demo tags already exist for you! Beware lest they be deleted by this demo") } latest_tags <- get_tags(client) delete_tag(client, latest_tags$DemoProject) delete_tag(client, latest_tags$DemoAudience) # TODO: delete content
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.