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
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.