サイボウズ Live API を使ってみる

サイボウズLiveAPIが公開されていたのでさっそく試してみた.
使用言語はRuby

アプリの登録

デベロッパセンターにログインしたら上メニューの「Myアプリケーション」→「アプリケーションを登録する」を選択.


以下の必須項目を記述.アプリの説明は任意で.

  • アプリケーション名
  • アプリケーションの種類

  今回はクライアントを選択

  • アクセスレベル

  レベルA ... 簡易情報の読み込みが可能。
  レベルB ... 詳細情報の読み込みが可能。
  レベルZ ... API が提供する全ての機能を利用可能。
  今回はレベルZを選択.

OAuthの設定

サイボウズLive APIへのアクセスはOAuthを利用する.
OAuthの仕組みなどはおググりあそばせ.


まずはアプリケーション管理画面にいき,Consumer KeyとConsumer Secret(赤線部分)を控えておく.


これをもとに認可されたアクセストークンを取得する必要があるが,
手続きが面倒なので対話式にアクセストークンを取得できるコードを用意.

手順としては,

  1. Consumer Keyを入力
  2. Consumer Secretを入力
  3. [許可用のURLが出力される]→ブラウザでURLにアクセス
  4. 確認コードを取得
  5. 確認コードを入力
  6. アクセストークンGET

という流れ.

require 'rubygems'                                                                                                                                                      
require 'oauth'                                                                                                                                                         
                                                                                                                                                                        
puts "consumer_key =>"                                                                                                                                                  
consumer_key = gets                                                                                                                                                     
consumer_key.chomp!                                                                                                                                                     
puts "consumer_secret"                                                                                                                                                  
consumer_secret = gets                                                                                                                                                  
consumer_secret.chomp!                                                                                                                                                  
                                                                                                                                                                        
consumer = OAuth::Consumer.new(                                                                                                                                         
  consumer_key,                                                                                                                                                         
  consumer_secret,                                                                                                                                                      
  :site => "https://api.cybozulive.com",                                                                                                                                
  :request_token_url => "https://api.cybozulive.com/oauth/initiate",                                                                                                    
  :access_token_url => "https://api.cybozulive.com/oauth/token"                                                                                                         
)                                                                                                                                                                       
                                                                                                                                                                        
request_token = consumer.get_request_token                                                                                                                              
puts request_token.authorize_url                                                                                                                                                                                                                                                                                             
########################
#ここで一度ブラウザに戻り,出力されたURLにアクセスする.
########################
puts "Code =>"                                                                                                                                                          
code = gets                                                                                                                                                             
code.chomp!                                                                                                                                                             
access_token = request_token.get_access_token(:oauth_verifier => code)                                                                                                  
                                                                                                                                                                        
puts "access_token"                                                                                                                                                     
puts access_token.token                                                                                                                                                 
puts "access_secret"                                                                                                                                                    
puts access_token.secret                                                                                                                                                
                                                                                                                                                                        
#############################
# 以下コピペ用
#############################
puts "Paste this to your code =>"                                                                                                                                       
puts "consumer = OAuth::Consumer.new(\"#{consumer_key}\",\"#{consumer_secret}\",:site => \"https//:api.cybozulive.com\")"                                               
puts "token = OAuth::AccessToken.new(consumer,\"#{access_token.token}\",\"#{access_token.secret}\")"  

試しに新着情報を取得してみる

アクセストークンを取得できたら,あとはそのトークンを使ってサイボウズLiveの様々な情報にアクセスすることができる.
以下はサイボウズLiveの新着情報を取得するコード.<==Consumer Key==>の部分は先程取得したものに置き換える.

require 'rubygems'                                                                                                                                                      
require 'oauth'                                                                                                                                                         
                                                                                                                                                                        
def get_oauth                                                                                                                                                           
  consumer = OAuth::Consumer.new(                                                                                                                                       
             "<==Consumer Key==>",                                                                                                                 
             "<==Consumer Secret==>",                                                                                                                   
             :site => "https://api.cybozulive.com"                                                                                                                      
             )                                                                                                                                                          
  token =   OAuth::AccessToken.new(                                                                                                                                     
            consumer,                                                                                                                                                   
            "<==Access Token==>",                                                                                                                         
            "<==Access Token Secret==>"                                                                                                                          
            )                                                                                                                                                           
end                                                                                                                                                                     
                                                                                                                                                                        
token = get_oauth                                                                                                                                                       
                                                                                                                                                                        
puts token.get("https://api.cybozulive.com/api/notification/V2")

これで新着情報がXML形式で取得できるのであとは煮るなり焼くなり.
この他にどのようなデータが取得/更新できるのかはAPIドキュメントを参考にする.

追記予定