第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>
Copy to Clipboard Toggle word wrap

URI 形式

twitter://endpoint[?options]
Copy to Clipboard Toggle word wrap

TwitterComponent:

twitter コンポーネントは、使用する前に設定する必要がある Twitter アカウント設定で設定できます。これらのオプションは、エンドポイントで直接設定することもできます。
Expand
オプション 説明
consumerKey コンシューマーキー
consumerSecret コンシューマーシークレット
accessToken アクセストークン
accessTokenSecret アクセストークンのシークレット

コンシューマーエンドポイント:

1 つのルートエクスチェンジで List を返すエンドポイントではなく、camel-twitter は返されたオブジェクトごとにルートエクスチェンジを 1 つ作成します。たとえば、timeline/home がステータス 5 回作成されると、ルートは 5 回実行されます( Statusごとに 1 回)。
Expand
エンドポイント コンテキスト ボディタイプ 注意
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

プロデューサーエンドポイント:

Expand
エンドポイント ボディタイプ
directmessage String
search List<twitter4j.Status>
timeline/user String

URI オプション

Expand
名前 デフォルト値 説明
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 による検索に、ストリーム以外の地理的な検索で使用されます。longitudelatituderadius、および distanceMetric のすべてのオプションを設定する必要があります。
longitude
Camel 2.16: ストリーム以外の地理的な検索により、長期間検索に使用されます。longitudelatituderadius、および distanceMetric のすべてのオプションを設定する必要があります。
radius
Camel 2.16: radius で検索するために、ストリーム以外の地理的な検索で使用されます。longitudelatituderadius、および distanceMetric のすべてのオプションを設定する必要があります。
distanceMetric
km
Camel 2.16: ストリーム以外の地理的な検索で使用され、設定されたメトリクスを使用して radius で検索します。この単位は、ミリ秒の場合は mi、kilometer の場合は km となります。longitudelatituderadius、および distanceMetric のすべてのオプションを設定する必要があります。

メッセージヘッダー

Expand
名前 説明
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 要求にデフォルト設定されることに注意してください。
from("direct:foo")
  .to("twitter://timeline/user?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]);
Copy to Clipboard Toggle word wrap
from("twitter://timeline/home?type=polling&delay=60&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]")
  .to("bean:blah");
Copy to Clipboard Toggle word wrap

キーワード 'camel' ですべてのステータスを検索するには、以下を実行します。

from("twitter://search?type=direct&keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]")
  .to("bean:blah");
Copy to Clipboard Toggle word wrap

静的キーワードでプロデューサーを使用した検索

from("direct:foo")
  .to("twitter://search?keywords=camel&consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
Copy to Clipboard Toggle word wrap

ヘッダーから動的キーワードを持つプロデューサーを使用した検索

バーヘッダーには検索するキーワードがあるため、この値を CamelTwitterKeywords ヘッダーに割り当てることができます。
from("direct:foo")
  .setHeader("CamelTwitterKeywords", header("bar"))
  .to("twitter://search?consumerKey=[s]&consumerSecret=[s]&accessToken=[s]&accessTokenSecret=[s]");
Copy to Clipboard Toggle word wrap

Twitter Websocket の例 も参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat