381.5. 메시지 사용
Cryostat 구성 요소는 메시지를 사용하기 위한 여러 끝점을 제공합니다.
URI | 설명 |
---|---|
yammer:messages?[options] | 사용자의 모든 공개 메시지(API를 호출하는 데 액세스 토큰)가 사용 중입니다. internet web interface의 "모든" 대화에 해당합니다. |
yammer:my_feed?[options] | 사용자의 피드는 "다음"과 "Top" 대화 사이에 이루어진 선택을 기반으로 합니다. |
yammer:algo?[options] | "Top" 대화에 해당하는 사용자의 알고리즘 피드는 대다수의 사용자가 웹 인터페이스에서 볼 수 있는 것입니다. |
yammer:following?[options] | 사용자가 팔로우하는 사람, 그룹 및 주제와 관련된 대화의 "다음" 피드. |
yammer:sent?[options] | 사용자가 보낸 모든 메시지입니다. |
yammer:private?[options] | 사용자가 수신한 개인 메시지입니다. |
yammer:received?[options] | Camel 2.12.1: 사용자가 수신한 모든 메시지 |
381.5.1. 메시지 형식
기본적으로 모든 메시지는 org.apache.camel.component.yammer.model
패키지에 제공된 Cryostat 모델로 변환됩니다. yammer에서 제공하는 원본 메시지는 JSON입니다. 엔드포인트를 사용하고 생성하는 모든 메시지에 대해 Messages
오브젝트가 반환됩니다. 예를 들어 다음과 같은 경로가 있습니다.
from("yammer:messages?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken") .to("mock:result");
yammer 서버가 반환된다고 가정합니다.
{ "messages":[ { "replied_to_id":null, "network_id":7654, "url":"https://www.yammer.com/api/v1/messages/305298242", "thread_id":305298242, "id":305298242, "message_type":"update", "chat_client_sequence":null, "body":{ "parsed":"Testing yammer API...", "plain":"Testing yammer API...", "rich":"Testing yammer API..." }, "client_url":"https://www.yammer.com/", "content_excerpt":"Testing yammer API...", "created_at":"2013/06/25 18:14:45 +0000", "client_type":"Web", "privacy":"public", "sender_type":"user", "liked_by":{ "count":1, "names":[ { "permalink":"janstey", "full_name":"Jonathan Anstey", "user_id":1499642294 } ] }, "sender_id":1499642294, "language":null, "system_message":false, "attachments":[ ], "direct_message":false, "web_url":"https://www.yammer.com/redhat.com/messages/305298242" }, { "replied_to_id":null, "network_id":7654, "url":"https://www.yammer.com/api/v1/messages/294326302", "thread_id":294326302, "id":294326302, "message_type":"system", "chat_client_sequence":null, "body":{ "parsed":"(Principal Software Engineer) has [[tag:14658]] the redhat.com network. Take a moment to welcome Jonathan.", "plain":"(Principal Software Engineer) has #joined the redhat.com network. Take a moment to welcome Jonathan.", "rich":"(Principal Software Engineer) has #joined the redhat.com network. Take a moment to welcome Jonathan." }, "client_url":"https://www.yammer.com/", "content_excerpt":"(Principal Software Engineer) has #joined the redhat.com network. Take a moment to welcome Jonathan.", "created_at":"2013/05/10 19:08:29 +0000", "client_type":"Web", "sender_type":"user", "privacy":"public", "liked_by":{ "count":0, "names":[ ] } } ] }
Camel은 2개의 Message
개체를 포함하는 Messages
오브젝트로 이를 마샬링합니다. 아래에 표시된 것처럼 필요한 정보를 쉽게 얻을 수 있는 풍부한 개체 모델이 있습니다.
Exchange exchange = mock.getExchanges().get(0); Messages messages = exchange.getIn().getBody(Messages.class); assertEquals(2, messages.getMessages().size()); assertEquals("Testing yammer API...", messages.getMessages().get(0).getBody().getPlain()); assertEquals("(Principal Software Engineer) has #joined the redhat.com network. Take a moment to welcome Jonathan.", messages.getMessages().get(1).getBody().getPlain());
즉, 이 데이터를 Cryostat로 마샬링하는 것은 무료이므로 URI에 useJson=false
옵션을 추가하여 순수 JSON을 다시 사용할 수 있습니다.