//tag::ref-doc[]
= Twitter Message Source

Repeatedly retrieves the direct messages (both sent and received) within the last 30 days, sorted in reverse-chronological order.
The relieved messages are cached (in a `MetadataStore` cache) to prevent duplications.
By default an in-memory `SimpleMetadataStore` is used.

The `twitter.message.source.count` controls the number or returned messages.

The `spring.cloud.stream.poller` properties control the message poll interval.
Must be aligned with used APIs rate limit

== Options

//tag::configuration-properties[]
Properties grouped by prefix:


=== spring.integration.poller

$$cron$$:: $$Cron expression for polling. Mutually exclusive with 'fixedDelay' and 'fixedRate'.$$ *($$String$$, default: `$$<none>$$`)*
$$fixed-delay$$:: $$Polling delay period. Mutually exclusive with 'cron' and 'fixedRate'.$$ *($$Duration$$, default: `$$<none>$$`)*
$$fixed-rate$$:: $$Polling rate period. Mutually exclusive with 'fixedDelay' and 'cron'.$$ *($$Duration$$, default: `$$<none>$$`)*
$$initial-delay$$:: $$Polling initial delay. Applied for 'fixedDelay' and 'fixedRate'; ignored for 'cron'.$$ *($$Duration$$, default: `$$<none>$$`)*
$$max-messages-per-poll$$:: $$Maximum number of messages to poll per polling cycle.$$ *($$Integer$$, default: `$$<none>$$`)*
$$receive-timeout$$:: $$How long to wait for messages on poll.$$ *($$Duration$$, default: `$$1s$$`)*

=== twitter.connection

$$access-token$$:: $$Your Twitter token.$$ *($$String$$, default: `$$<none>$$`)*
$$access-token-secret$$:: $$Your Twitter token secret.$$ *($$String$$, default: `$$<none>$$`)*
$$consumer-key$$:: $$Your Twitter key.$$ *($$String$$, default: `$$<none>$$`)*
$$consumer-secret$$:: $$Your Twitter secret.$$ *($$String$$, default: `$$<none>$$`)*
$$debug-enabled$$:: $$Enables Twitter4J debug mode.$$ *($$Boolean$$, default: `$$false$$`)*
$$raw-json$$:: $$Enable caching the original (raw) JSON objects as returned by the Twitter APIs. When set to False the result will use the Twitter4J's json representations. When set to True the result will use the original Twitter APISs json representations.$$ *($$Boolean$$, default: `$$true$$`)*

=== twitter.message.source

$$count$$:: $$Max number of events to be returned. 20 default. 50 max.$$ *($$Integer$$, default: `$$20$$`)*
//end::configuration-properties[]

//end::ref-doc[]

