GET meetings/show
ミーティング情報を取得します。(近日公開予定)
基本情報
認証 | 必要 |
HTTPメソッド | GET |
リソースURL
https://www.co-meeting.com/api/v1/meetings/show
パラメータ
meeting_id |
ミーティングのID、必須 ミーティングIDはミーティングを開いたURLまれる http://www.co-meeting.com/g/<グループID>#!<ミーティングID> |
omit_discussion |
ディスカッションの情報を省略するかどうかを指定 0: ディスカッションを取得(デフォルト) 1: ディスカッションを省略 |
omit_note |
共有ノートの情報を省略するかどうかを指定 0: ノートを取得(デフォルト) 1: ノートを省略 |
サンプルリクエスト
POST | https://www.co-meeting.com/api/v1/meetings/show?meeting_id=111222333444 |
{
"status": "success",
"result": {
"title": "ミーティング名",
"creator": "suzuki",
"participants": {
"suzuki": {
"id": "111222333444555",
"name": "鈴木太郎",
"screen_name": "suzuki",
"icon_url": "https://www.co-meeting.com/s/avatar/xxxxxx/thumb.jpg",
"last_accessed_at": "2014-10-08T23:28:15+00:00"
},
"yamada": {
"id": "111222333444555",
"name": "山田花子",
"screen_name": "yamada",
"icon_url": "https://www.co-meeting.com/s/avatar/yyyyyy/thumb.jpg",
"last_accessed_at": "2014-10-02T06:21:50+00:00"
}
},
"updated_at": "2014-10-07T03:33:52Z",
"discussion": {
"threads": {"b+ksON83YrDOA": {"id": "b+ksON83YrDOA", "blipIds": ["b+ksON83YrDOA", "b+ksON83YrDOB"]}},
"rootThread": {"blipIds": ["b+sym284ymyz1n"]},
"blips": {
"b+ksON83YrDOA": {
"annotations": [],
"properties": {},
"elements": {
"0": {"type": "LINE", "properties": {}}
},
"blipId": "b+ksON83YrDOA",
"childBlipIds": [],
"contributors": ["suzuki"],
"creator": "suzuki",
"content": "\ninline reply",
"lastModifiedTime": "2014-10-07T11:50:54Z",
"parentBlipId": "b+sym284ymyz1n",
"version": 119,
"replyThreadIds": [],
"threadId": "b+ksON83YrDOA"
},
"b+ksON83YrDOB": {
"annotations": [],
"properties": {},
"elements": {
"0": {"type": "LINE","properties": {}}
},
"blipId": "b+ksON83YrDOB",
"childBlipIds": [],
"contributors": ["suzuki"],
"creator": "suzuki",
"content": "\nkeep thread",
"lastModifiedTime": "2014-10-07T11:50:54Z",
"parentBlipId": "b+sym284ymyz1n",
"version": 92,
"replyThreadIds": [],
"threadId": "b+ksON83YrDOA"
},
"b+sym284ymyz1n": {
"annotations": [
{"name": "style/fontWeight", "value": "bold", "range": {"start": 33, "end": 38}},
{"name": "style/fontStyle", "value": "italic", "range": {"start": 38, "end": 44}}
],
"properties": {},
"elements": {
"0": {"type": "LINE", "properties": {}},
"21": {"type": "LINE", "properties": {}},
"20": {"type": "INLINE_BLIP", "properties": {"id": "b+ksON83YrDOA"}},
"10": {"type": "LINE", "properties": {}},
"11": {"type": "ATTACHMENT", "properties": {"attachmentId": "111222333444555", "caption": "IntercomBeta.png"}},
"12": {"type": "LINE", "properties": {}}
},
"blipId": "b+sym284ymyz1n",
"childBlipIds": ["b+ksON83YrDOA", "b+ksON83YrDOB"],
"contributors": ["suzuki"],
"creator": "suzuki",
"content": "\ntest blip\n \nreplies \nannotation bold italic",
"lastModifiedTime": "2014-10-07T11:50:54Z",
"parentBlipId": nil,
"version": 288,
"replyThreadIds": ["b+ksON83YrDOA"],
"threadId": ""
}
}
},
"note": {
"annotations": [],
"properties": {},
"elements": {"0": {"type": "LINE", "properties": {}}},
"blipId": "b+tcs1304old3tp",
"childBlipIds": [],
"contributors": ["suzuki"],
"creator": "suzuki",
"content": "\n",
"lastModifiedTime": "2014-10-07T11:50:54Z",
"version": 2,
}
}
}
レスポンス
result/title | ミーティングのタイトル |
result/creator | ミーティング作成者のscreen_name |
result/discussion | ミーティング ディスカッションコンテンツ |
result/discussion/threads |
ディスカッション内スレッドリスト
スレッドIDとスレッド情報のハッシュ スレッド情報は、表示順に整列されたスレッドに含まれるメッセージの配列を含む 各メッセージのフォーマットは、メッセージ(Blip)を参照 |
result/discussion/rootThread |
ディスカッション ルートスレッド 表示順に整列されたスレッドに含まれるメッセージの配列 書くメッセージの内容は、メッセージ(Blip)を参照 |
result/discussion/blips |
ディスカッション内メッセージリスト メッセージIDとメッセージのハッシュ スレッドはメッセージの枝(Edge)を表し、blipsに含まれるメッセージは葉(Leaf) |
result/note |
ミーティング ノートコンテンツ 共有ノートには、1つのメッセージが含まれる メッセージのフォーマットは、メッセージ(Blip)を参照 |
メッセージ(Blip)
blipId | メッセージのID | ||||||
creator | メッセージ作成者のscreen_name | ||||||
contributors | メッセージ編集者のscreen_name | ||||||
annotations |
メッセージに適用するスタイル
|
||||||
properties |
メッセージの付加情報
|
||||||
elements |
メッセージ内に適用するHTMLタグ 要素開始位置をインデックスとするハッシュ
|
||||||
content | メッセージテキスト |
サンプルコード
require 'json'
require 'oauth2'
client_id = "11112222333344445555"
client_secret = "11112222333344445555"
$client = OAuth2::Client.new(client_id, client_secret, :site => 'https://www.co-meeting.com')
puts $client.auth_code.authorize_url(:redirect_uri => 'urn:ietf:wg:oauth:2.0:oob')
authorization_token = STDIN.gets.chomp
$access_token = $client.auth_code.get_token(authorization_token, :redirect_uri => 'urn:ietf:wg:oauth:2.0:oob').token
json = OAuth2::AccessToken.new($client, $access_token).get('/api/v1/meetings/show?meeting_id=11112222333344445555').body
$meeting = JSON.parse(json)['result']
puts $meeting
$discussion = $meeting['discussion']
def render_attachment(attachment_id)
json = OAuth2::AccessToken.new($client, $access_token).get('/api/v1/attachments/show?attachment_id=' + attachment_id).body
attachment = JSON.parse(json)['result']
"<img src='" + attachment['thumbnail_url'] + "'/>"
end
def render_blip(blip_id)
blip_html = "<div style='border: 1px solid #ddd;padding: 3px 5px 3px 10px;'>"
blip = $discussion['blips'][blip_id]
# テキストを1文字ずつ分割
content = blip['content']
content_char_array = content.split(//)
# elementsをコンテンツに適用
# 要素はインデックス順にソートしてから処理する
need_close_line = false
blip['elements'].sort.each do |index, element|
element_string = ''
if element['type'] == 'LINE' && need_close_line
element_string += '</div>'
need_close_line = false
end
case element['type']
when 'LINE' then
element_string += '<div>'
need_close_line = true
when 'ATTACHMENT' then
element_string += render_attachment(element['properties']['attachmentId'])
when 'INLINE_BLIP' then
$discussion['threads'][element['properties']['id']]['blipIds'].each do |blip_id|
element_string += render_blip(blip_id)
end
end
content_char_array[index.to_i] = element_string
end
# annotationをコンテンツに適用
blip['annotations'].each do |annotation|
start_element_string = "<span style='"
end_element_string = "</span>"
case annotation['name']
when 'style/fontWeight' then
start_element_string += "font-weight:" + annotation['value'] + ";"
when 'style/fontStyle' then
start_element_string += "font-style:" + annotation['value'] + ";"
end
start_element_string += "'>"
content_char_array[annotation['range']['start'].to_i] = start_element_string + content_char_array[annotation['range']['start'].to_i]
content_char_array[annotation['range']['end'].to_i - 1] = content_char_array[annotation['range']['end'].to_i - 1] + end_element_string
end
blip_html += content_char_array.join + '</div>' # 最後のLINEを閉じる
blip_html + "</div>"
end
$discussion['rootThread']['blipIds'].each do |blip_id|
puts render_blip(blip_id)
end