Available as of Camel
...
2.10
...
The
...
...
component
...
enables
...
the
...
most
...
useful
...
features
...
of
...
the
...
...
API
...
by
...
encapsulating
...
...
.
...
It
...
allows
...
direct,
...
polling,
...
or
...
event-driven
...
consumption
...
of
...
timelines,
...
users,
...
trends,
...
and
...
direct
...
messages.
...
Also,
...
it
...
supports
...
producing
...
messages
...
as
...
status
...
updates
...
or
...
direct
...
messages.
...
...
now
...
requires
...
the
...
use
...
of
...
OAuth
...
for
...
all
...
client
...
application
...
authentication.
...
In
...
order
...
to
...
use
...
camel-twitter
...
with
...
your
...
account,
...
you'll
...
need
...
to
...
create
...
a
...
new
...
application
...
within
...
...
at
...
https://dev.twitter.com/apps/new
...
and
...
grant
...
the
...
application
...
access
...
to
...
your
...
account.
...
Finally,
...
generate
...
your
...
access
...
token
...
and
...
secret.
...
Maven
...
users
...
will
...
need
...
to
...
add
...
the
...
following
...
dependency
...
to
...
their
...
pom.xml
...
for
...
this
...
component:
Code Block | ||||
---|---|---|---|---|
| ||||
{code:xml} <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-twitter</artifactId> <version>${camel-version}</version> </dependency> {code |
URI format
Code Block |
---|
} h3. URI format {code} twitter://endpoint[?options] {code} h3. |
TwitterComponent:
...
The
...
...
component
...
can
...
be
...
configured
...
with
...
the
...
...
account
...
settings
...
which
...
is
...
mandatory
...
to
...
configure
...
before
...
using.
...
You
...
can
...
also
...
configure
...
these
...
options
...
directly
...
in
...
the
...
endpoint.
Wiki Markup |
---|
{div:class=confluenceTableSmall} || Option || Description || | consumerKey | The consumer key | | consumerSecret | The consumer secret | | accessToken | The access token | | accessTokenSecret | The access token secret | {div} h3. |
Consumer
...
Endpoints:
...
Rather
...
than
...
the
...
endpoints
...
returning
...
a
...
List
...
through
...
one
...
single
...
route
...
exchange,
...
camel-twitter
...
creates
...
one
...
route
...
exchange
...
per
...
returned
...
object.
...
As
...
an
...
example,
...
if
...
"timeline/home"
...
results
...
in
...
five
...
statuses,
...
the
...
route
...
will
...
be
...
executed
...
five
...
times
...
(one
...
for
...
each
...
Status).
Wiki Markup |
---|
{div:class=confluenceTableSmall} || Endpoint || Context || Body Type || Notice || | directmessage | direct, polling | twitter4j.DirectMessage | | | search | direct, polling | twitter4j.Tweet | | | streaming/filter | event, polling | twitter4j.Status | | | streaming/sample | event, polling | twitter4j.Status | | | timeline/home | direct, polling | twitter4j.Status | | | timeline/mentions | direct, polling | twitter4j.Status | | | timeline/public | direct, polling | twitter4j.Status | @deprecated. Use timeline/home or direct/home instead. Removed from *Camel 2.11* onwards. | | timeline/retweetsofme | direct, polling | twitter4j.Status | | | timeline/user | direct, polling | twitter4j.Status | | | trends/daily | *Camel 2.10.1:* direct, polling | twitter4j.Status | @deprecated. Removed from Camel 2.11 onwards. | | trends/weekly | *Camel 2.10.1:* direct, polling | twitter4j.Status | @deprecated. Removed from Camel 2.11 onwards. | {div} h3. |
Producer
...
Endpoints:
Wiki Markup |
---|
{div:class=confluenceTableSmall} || Endpoint || Body Type || | directmessage | String | | search | List<twitter4j.Tweet> | | timeline/user | String | {div} h3. |
URI Options
Wiki Markup |
---|
Options {div:class=confluenceTableSmall} || Name || Default Value || Description || | type | {{direct}} | direct, event, or polling | | delay | {{60}} | in seconds | | consumerKey | {{null}} | Consumer Key. Can also be configured on the {{TwitterComponent}} level instead. | | consumerSecret | {{null}} | Consumer Secret. Can also be configured on the {{TwitterComponent}} level instead. | | accessToken | {{null}} | Access Token. Can also be configured on the {{TwitterComponent}} level instead. | | accessTokenSecret | {{null}} | Access Token Secret. Can also be configured on the {{TwitterComponent}} level instead. | | user | {{null}} | Username, used for user timeline consumption, direct message production, etc. | | locations| {{null}} | 'lat,lon;lat,lon;...' Bounding boxes, created by pairs of lat/lons. Can be used for streaming/filter | | keywords| {{null}} | 'foo1,foo2,foo3...' Can be used for search and streaming/filter. See [Advanced search|https://support.twitter.com/articles/71577-using-advanced-search] for keywords syntax for searching with for example OR. | | userIds| {{null}} | 'username,username...' Can be used for streaming/filter | | filterOld | {{true}} | Filter out old tweets, that has previously been polled. This state is stored in memory only, and based on last tweet id. *Since Camel 2.11.0* The search producer supports this option | | sinceId | {{1}} | *Camel 2.11.0:* The last tweet id which will be used for pulling the tweets. It is useful when the camel route is restarted after a long running.| | lang | {{null}} | *Camel 2.11.0:* The lang string [ISO_639-1|http://en.wikipedia.org/wiki/ISO_639-1] which will be used for searching | | count | {{null}} | *Camel 2.11.0:* Limiting number of results per page. | | numberOfPages | {{1}} | *Camel 2.11.0:* The number of pages result which you want camel-twitter to consume. | {div} h3. |
Message header
Wiki Markup |
---|
header {div:class=confluenceTableSmall} || Name || Description || |{{CamelTwitterKeywords}}|This header is used by the search producer to change the search key words dynamically.| |{{CamelTwitterSearchLanguage}}| *Camel 2.11.0:* This header can override the option of {{lang}} which set the search language for the search endpoint dynamically| |{{CamelTwitterCount}}|*Camel 2.11.0* This header can override the option of {{count}} which sets the max twitters that will be returned.| |{{CamelTwitterNumberOfPages}}|*Camel 2.11.0* This header can converrid the option of {{numberOfPages}} which sets how many pages we want to twitter returns.| {div} h3. |
Message
...
body
...
All
...
message
...
bodies
...
utilize
...
objects
...
provided
...
by
...
the
...
Twitter4J
...
API.
Use cases
To create a status update within your Twitter profile, send this producer a String body.
Code Block |
---|
h3. Use cases h4. To create a status update within your Twitter profile, send this producer a String body. {code} from("direct:foo") .to("twitter://timeline/user?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]); {code} h4. To |
To poll,
...
every
...
5
...
sec.,
...
all
...
statuses
...
on
...
your
...
home
...
timeline:
Code Block |
---|
} from("twitter://timeline/home?type=polling&delay=5&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]") .to("bean:blah"); {code} h4. To search for all statuses with the keyword |
To search for all statuses with the keyword 'camel':
Code Block |
---|
} from("twitter://search?type=direct&keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]") .to("bean:blah"); {code} h4. Searching using a producer with static keywords {code} |
Searching using a producer with static keywords
Code Block |
---|
from("direct:foo")
.to("twitter://search?keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
{code}
h4. Searching using a producer with dynamic keywords from header
In the bar header we have the keywords we want to search, so we can |
Searching using a producer with dynamic keywords from header
In the bar header we have the keywords we want to search, so we can assign this value to the CamelTwitterKeywords
header.
Code Block |
---|
assign this value to the {{CamelTwitterKeywords}} header. {code} from("direct:foo") .setHeader("CamelTwitterKeywords", header("bar")) .to("twitter://search?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]"); {code} h3. Example See also the [Twitter Websocket Example]. {include:Endpoint See Also} - [Twitter Websocket Example] |
Example
See also the Twitter Websocket Example.
Include Page | ||||
---|---|---|---|---|
|