質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

3回答

2778閲覧

Twitter4jを使用したフォローしているアカウントのみのツイート検索

sheepman

総合スコア13

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2017/11/27 08:21

JavaによるTwitter連携アプリを作成しています。
やりたいことは下記条件のツイートの取得です。
・指定したワードを含む
・特定のクライアントを使用している
・フォローしているアカウントのツイートのみ

一つ目、二つ目はTwitterの検索API(search/tweets)の
qパラメータの指定でクリアできると思っています。
(q=XXX source:ZZZ※エンコードは略)
三つ目は検索APIにs=follows指定することで解決でき、
ブラウザ等でURLで叩く分には意図した結果が得られています。

APIやOAuthまわりが非常に扱いやすいためTwitter4jを用いようと考えているのですが、
上記条件を同時に満たせるメソッドが無いように見えるため、何か良い方法はないかと思案しています。
Twitterクラスのsearch()メソッドでは、「フォローしているユーザのみ」という指定ができません。

一度ワードで絞った結果をプログラム内でフォローしているユーザに絞るのは非効率であり、
HomeTimeLine、UserTimeLineでは2つ目の条件が併用できないなど、うまくいきません。

OAuthや使える部分だけTwitter4jを使用し、クエリ部分だけは標準APIを使う方法を考えていますが、何か良い方法をご存知でしたらお教えください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

Query query = new Query(); query.setQuery("q=teratail filter:follows"); QueryResult result = twitter.search(query); List<Status> list = result.getTweets();

Query

のようだね

投稿2017/11/27 15:16

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sheepman

2017/11/28 01:11

ソースコードまで記載いただきありがとうございます。 Queryの文字列指定に「q=」が必要だったか少し記憶が曖昧なので確認してみようと思います。 また、filter指定以外になにか検索文字列を入れないと上手くいかないのもわかりました。 情報のご提供ありがとうございます。
退会済みユーザー

退会済みユーザー

2017/11/28 01:42

Queryのコードを見た感じ必要にみえたよ
guest

0

ベストアンサー

フォローしているユーザのみ
というフィルタは検索演算子で適用できます
filter:follows

?q=XXX source:zzz filter:follows&..

投稿2017/11/27 08:41

39ff

総合スコア284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sheepman

2017/11/28 01:08

なるほど!解決しました。 sのオプションに固執しすぎ、且つfilterでfollows指定ができることを把握できていませんでした。 情報をつまみつまみ調べており、基本的な部分が調べ切れていませんでした。ありがとうございます。
guest

0

回答いただいた内容で、Twitter公式アプリ等の検索欄においては期待通り動きましたが、
Twitter4jではfilter:followsだけ有効になりませんでした。
(filter:imagesなどは利用できたので、filterが悪いというわけでもない模様)
本来であれば、公式APIを直接用いてTwitter4j仕様か、公式API仕様かを切り分けるのがベストですが、
今回はフォロワーのIDのHashSetを作り、StatusのIDが含まれているかチェックする方法で回避しました。

投稿2017/12/21 08:49

sheepman

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問