社内でChatworkが使われているのですが、Rの計算が終わったときに通知してくれると便利だと思い、 ChatworkのAPIを叩いて通知する関数を作ってみました。 chatworkにbotアカウントを用意し、計算終了時にメッセージを投稿させます。
こちらのコードを参考にしました。ありがとうございます。 qiita.com
APIの申請方法等はChatworkの公式ドキュメントを見ましょう。 developer.chatwork.com
RCurlというライブラリを使えば割と簡単でした。
しかし、ベクトルやリストの関数で引数があるもの( c( = )の部分とかlist(=, =) )が言語の中でどういう扱いなのか分かりません…。
library(utils) library(RCurl) setConfig <- function(roomid, token) { # 他の言語ならクラスを作ってset_urlやset_tokenなどのメソッドを作るところですが、 # Rのクラスの仕組みがよく分からなかったのでとりあえずクロージャで実装しました。 url <- paste0("https://api.chatwork.com/v1/rooms/", roomid, "/messages") httpheader <- c('X-ChatWorkToken' = token) return( function(message) { body <- utils::URLencode(paste0('body=', message)) return( RCurl::postForm(url, .opts=list(httpheader=httpheader, postfields=body)) ) } ) } postChatwork <- setConfig(405*****, '82*******') # 部屋のIDとアクセストークンを用意 postChatwork("hello chatwork!") # 投稿完了! # 成功するとこんな値が返ってきます # => [1] "{\"message_id\":985697220}" # attr(,"Content-Type") # charset # "application/json" "utf-8"