Skip to content

yutannihilation/qiitr

Repository files navigation

qiitr - R Binding for Qiita API

R build status CRAN_Status_Badge

About Qiita

Qiita is a technical knowledge sharing and collaboration platform for programmers. API Document is here http://qiita.com/api/v2/docs.

Installation

qiitr is now on CRAN.

install.packages("qiitr")

If you need the development version, try:

devtools::install_github("yutannihilation/qiitr")

Preperation

Most of Qiita APIs need authorization by an access token. You can issue access tokens on application settings with the proper priviledge scope.

qiitr package uses QIITA_ACCESSTOKEN environmental variable for authoriation. Add the following to your .Renviron file. If you are not familiar with .Renviron, please read ?Startup. The file is usually placed in the directory of Sys.getenv("R_USER").

QIITA_ACCESSTOKEN='(your access token)'

Or, you can temporarily set QIITA_ACCESSTOKEN by qiita_set_accesstoken().

qiita_set_accesstoken()

Usage

Get item information

Items means articles on Qiita. qiita_get_items() can get items by item IDs, tag IDs or user IDs.

# get items by item ID
qiita_get_items(item_id = "7a78d897810446dd6a3b")

# get items by tag ID
qiita_get_items(tag_id = c("dplyr", "tidyr"), per_pages = 10L, page_limit = 1L)

# get items by user ID
qiita_get_items(user_id = "yutannihilation")

Get user information

qiita_get_authenticated_user() returns the current user's information. qiita_get_users() returns the information about the specified user.

# get the current user
qiita_get_authenticated_user()

# get a user by id
qiita_get_users("yutannihilation")

Follow/Unfollow tags and users

You can also follow/unfollow tags and users by qiitr functions. Note that thsese APIs requires write priviledge.

# follow a user
qiita_follow_user("user1")

# unfollow a user
qiita_unfollow_user("user1")

# follow a tag
qiita_follow_tag("RStudio")

# unfollow a tag
qiita_unfollow_tag("RStudio")

Post and edit items

qiita_post_item() posts an item. Note that the item is private by default. You should manually check if the post is valid before make it public. qiita_update_item() updates it and qiita_delete_item() deletes it.

# post an item
item <- qiita_post_item(title = "test", body = "This is an example.")

browseURL(item$url)

# update the item
qiita_update_item(item$id, title = "test", body = "**This is a strong example!**")

# delete the item
qiita_delete_item(item$id)

Note

Qiita:Team

Though this package doesn't provide full support for Qiita:Team-related APIs, you can set QIITA_URL environmental variable to change API endpoints. Please add the following to your .Renviron.

QIITA_URL='(your Qiita:Team's URL)'