380.5. 메시지 사용

ECDHE 구성 요소는 메시지를 사용하기 위해 여러 끝점을 제공합니다.

URI설명
 yammer:messages?[options]

사용자의 모든 공개 메시지(API 호출을 수행하는 데 액세스 토큰)가 사용되고 있습니다. ECDHE 웹 인터페이스의 "모든" 대화에 해당합니다.

 yammer:my_feed?[options]

사용자의 피드는 "Following"과 "Top" 대화 사이에 수행된 선택을 기반으로 합니다.

yammer:algo?[options]

사용자의 알고리즘 피드는 "Top" 대화에 해당합니다.이 대화는 대부분의 사용자가ECDHE 웹 인터페이스에서 볼 수 있습니다.

yammer:following?[options]

사용자, 그룹 및 사용자가 따르는 주제와 관련된 대화인 "Following" 피드입니다.

yammer:sent?[options]

사용자가 보낸 모든 메시지입니다.

yammer:private?[options]

사용자가 수신한 개인 메시지입니다.

yammer:received?[options]

Camel 2.12.1: 사용자가 수신한 모든 메시지

380.5.1. 메시지 형식

기본적으로 모든 메시지는 org.apache.camel.component.yammer.model 패키지에 제공된ECDHE 모델로 변환됩니다. 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은 Messages 오브젝트 2개가 포함된 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());

즉, 이 데이터를ECDHEs로 마샬링하는 것은 무료가 아니므로 필요한 경우 useJson=false 옵션을 URI에 추가하여 간단한 JSON을 사용하여 다시 전환할 수 있습니다.