サイボウズ Live API を使ってみる
サイボウズLiveのAPIが公開されていたのでさっそく試してみた.
使用言語はRuby
デベロッパ登録
まずはココからサイボウズLiveのデベロッパ登録をする.
https://developer.cybozulive.com
アプリの登録
デベロッパセンターにログインしたら上メニューの「Myアプリケーション」→「アプリケーションを登録する」を選択.
- アプリケーション名
- アプリケーションの種類
今回はクライアントを選択
- アクセスレベル
レベルA ... 簡易情報の読み込みが可能。
レベルB ... 詳細情報の読み込みが可能。
レベルZ ... API が提供する全ての機能を利用可能。
今回はレベルZを選択.
OAuthの設定
サイボウズLive APIへのアクセスはOAuthを利用する.
OAuthの仕組みなどはおググりあそばせ.
まずはアプリケーション管理画面にいき,Consumer KeyとConsumer Secret(赤線部分)を控えておく.
これをもとに認可されたアクセストークンを取得する必要があるが,
手続きが面倒なので対話式にアクセストークンを取得できるコードを用意.
手順としては,
- Consumer Keyを入力
- Consumer Secretを入力
- [許可用のURLが出力される]→ブラウザでURLにアクセス
- 確認コードを取得
- 確認コードを入力
- アクセストークン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ドキュメントを参考にする.
追記予定