Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第177章 Twitter
Twitter リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.10 以降で利用可能
Twitter コンポーネントは、Twitter4J をカプセル化することで、Twitter API で最も便利な機能を有効にします。これにより、タイムライン、ユーザー、傾向、およびダイレクトメッセージの直接、ポーリング、またはイベント駆動型の消費が可能になります。また、ステータスの更新またはダイレクトメッセージとしてのメッセージの生成にも対応しています。
Twitter では、すべてのクライアントアプリケーション認証に OAuth を使用する必要があります。アカウントで camel-twitter を使用するには、https://dev.twitter.com/apps/new で Twitter 内に新しいアプリケーションを作成し、アプリケーションにアカウントへのアクセスを許可する必要があります。最後に、アクセストークンおよびシークレットを生成します。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-twitter</artifactId> <version>${camel-version}</version> </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-twitter</artifactId>
<version>${camel-version}</version>
</dependency>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
twitter://endpoint[?options]
twitter://endpoint[?options]
TwitterComponent: リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
twitter コンポーネントは、使用する前に設定する必要がある Twitter アカウント設定で設定できます。これらのオプションは、エンドポイントで直接設定することもできます。
オプション | 説明 |
---|---|
consumerKey
|
コンシューマーキー |
consumerSecret
|
コンシューマーシークレット |
accessToken
|
アクセストークン |
accessTokenSecret
|
アクセストークンのシークレット |
コンシューマーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
1 つのルートエクスチェンジで
List
を返すエンドポイントではなく、camel-twitter
は返されたオブジェクトごとにルートエクスチェンジを 1 つ作成します。たとえば、timeline/home
がステータス 5 回作成されると、ルートは 5 回実行されます( Status
ごとに 1 回)。
エンドポイント | コンテキスト | ボディタイプ | 注意 |
---|---|---|---|
directmessage
|
直接、ポーリング |
twitter4j.DirectMessage
|
|
search
|
直接、ポーリング |
twitter4j.Status
|
|
streaming/filter
|
イベント、ポーリング |
twitter4j.Status
|
|
streaming/sample
|
イベント、ポーリング |
twitter4j.Status
|
|
streaming/user
|
イベント、ポーリング |
twitter4j.Status
twitter4j.DirectMessage
twitter4j.UserList
|
Camel 2.16: 保護されたユーザーおよびアカウントからツイートを受信するため。
Camel 2.17: DirectMessages, Favorites, Lists, Following events がサポートされるようになりました。
|
timeline/home
|
直接、ポーリング |
twitter4j.Status
|
|
timeline/mentions
|
直接、ポーリング |
twitter4j.Status
|
|
timeline/retweetsofme
|
直接、ポーリング |
twitter4j.Status
|
|
timeline/user
|
直接、ポーリング |
twitter4j.Status
|
プロデューサーエンドポイント: リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
エンドポイント | ボディタイプ |
---|---|
directmessage
|
String
|
search
|
List<twitter4j.Status>
|
timeline/user
|
String
|
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | デフォルト値 | 説明 |
---|---|---|
type
|
直接的な
|
直接、イベント、またはポーリング |
delay
|
ポーリング間の遅延。デフォルト値は 60 秒です。Camel 2.16 以前の値は秒単位です。Camel 2.17 以降のミリ秒単位。 | |
consumerKey
|
null
|
Consumer Key。代わりに TwitterComponent レベルで設定することもできます。
|
consumerSecret
|
null
|
コンシューマーシークレット。代わりに TwitterComponent レベルで設定することもできます。
|
accessToken
|
null
|
アクセストークン。代わりに TwitterComponent レベルで設定することもできます。
|
accessTokenSecret
|
null
|
アクセストークンシークレット。代わりに TwitterComponent レベルで設定することもできます。
|
user
|
null
|
ユーザー名。ユーザーのタイムライン消費、ダイレクトメッセージの実稼働などに使用されます。 |
locations
|
null
|
'lat,lon;lat,lon;...' lat/lons のペアによって作成されたバインドされたボックス。ストリーミング/フィルターに使用できます。 |
keywords
|
null
|
'foo1,foo2,foo3...' 検索およびストリーミング/フィルターに使用できます。OR などで 検索するためのキーワード構文については、高度 な検索 を参照してください。 |
userIds
|
null
|
'username,username...' ストリーミング/フィルターに使用できます。 |
filterOld
|
true
|
以前にポーリングされた古いツイートを除外します。この状態はメモリーにのみ保存され、最後のツイート ID に基づいています。Camel 2.11.0 以降、検索プロデューサーはこのオプションをサポートします |
sinceId
|
1
|
Camel 2.11.0: ツイートをプルするために使用される最後のツイート ID。これは、長時間実行した後に camel ルートが再起動する場合に便利です。 |
lang
|
null
|
Camel 2.11.0: 検索に使用される lang 文字列 ISO_639-1 |
count
|
null
|
Camel 2.11.0: ページごとの結果の制限数。 |
numberOfPages
|
1
|
Camel 2.11.0: camel-twitter が消費するページ結果の数。 |
httpProxyHost
|
null
|
Camel 2.12.3: camel-twitter に使用できる http プロキシーホスト。
|
httpProxyPort
|
null
|
Camel 2.12.3: camel-twitter に使用できる http プロキシーポート。
|
httpProxyUser
|
null
|
Camel 2.12.3: camel-twitter に使用できる http プロキシーユーザー。
|
httpProxyPassword
|
null
|
Camel 2.12.3: camel-twitter に使用できる http プロキシーパスワード。
|
latitude
|
|
Camel 2.16: latitude による検索に、ストリーム以外の地理的な検索で使用されます。
longitude 、latitude 、radius 、および distanceMetric のすべてのオプションを設定する必要があります。
|
longitude
|
|
Camel 2.16: ストリーム以外の地理的な検索により、長期間検索に使用されます。
longitude 、latitude 、radius 、および distanceMetric のすべてのオプションを設定する必要があります。
|
radius
|
|
Camel 2.16: radius で検索するために、ストリーム以外の地理的な検索で使用されます。
longitude 、latitude 、radius 、および distanceMetric のすべてのオプションを設定する必要があります。
|
distanceMetric
|
km
|
Camel 2.16: ストリーム以外の地理的な検索で使用され、設定されたメトリクスを使用して radius で検索します。この単位は、ミリ秒の場合は
mi 、kilometer の場合は km となります。longitude 、latitude 、radius 、および distanceMetric のすべてのオプションを設定する必要があります。
|
メッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | 説明 |
---|---|
CamelTwitterKeywords
|
このヘッダーは、検索キー単語を動的に変更するために検索プロデューサーによって使用されます。 |
CamelTwitterSearchLanguage
|
Camel 2.11.0: このヘッダーは、検索エンドポイントの検索言語を動的に設定する lang のオプションを上書きできます。
|
CamelTwitterCount
|
Camel 2.11.0 このヘッダーは、返される最大 twitters を設定する count のオプションを上書きできます。
|
CamelTwitterNumberOfPages
|
Camel 2.11.0 このヘッダーは、twitter を返すページ数を設定する numberOfPages のオプションを収束できます。
|
CamelTwitterNumberOfPages
|
Camel 2.17.0: 受信したイベントのタイプ( org.apache.camel.component.twitter.consumer.TwitterEventType を参照してください)。
|
CamelTwitterNumberOfPages
|
Camel 2.17.0: 当事者を特定します。 |
CamelTwitterNumberOfPages
|
Camel 2.17.0: 当事者ロールを識別します。 |
メッセージボディー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
すべてのメッセージ本文は、Twitter4J API によって提供されるオブジェクトを使用します。
API 流量制御 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Twitter4J によってカプセル化された Twitter REST API は、API Rate Limiting の対象となります。メソッドごとの制限は、API Rate Limits に関するドキュメントを参照してください。そのページに一覧表示されていないエンドポイント/リソースは、ウィンドウごとに割り当てられたユーザーごとに 15 要求にデフォルト設定されることに注意してください。
Twitter プロファイル内でステータス更新を作成するには、このプロデューサーを String ボディーを送信します。 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
from("direct:foo") .to("twitter://timeline/user?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]);
from("direct:foo")
.to("twitter://timeline/user?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]);
60 秒ごとに、自宅のタイムラインのすべてのステータスをポーリングするには、以下を実行します。 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
from("twitter://timeline/home?type=polling&delay=60&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]") .to("bean:blah");
from("twitter://timeline/home?type=polling&delay=60&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]")
.to("bean:blah");
キーワード 'camel' ですべてのステータスを検索するには、以下を実行します。 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
from("twitter://search?type=direct&keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]") .to("bean:blah");
from("twitter://search?type=direct&keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]")
.to("bean:blah");
静的キーワードでプロデューサーを使用した検索 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
from("direct:foo") .to("twitter://search?keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
from("direct:foo")
.to("twitter://search?keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
ヘッダーから動的キーワードを持つプロデューサーを使用した検索 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
バーヘッダーには検索するキーワードがあるため、この値を
CamelTwitterKeywords
ヘッダーに割り当てることができます。
from("direct:foo") .setHeader("CamelTwitterKeywords", header("bar")) .to("twitter://search?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
from("direct:foo")
.setHeader("CamelTwitterKeywords", header("bar"))
.to("twitter://search?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Twitter Websocket の例 も参照してください。