2012-12-17 33 views
8

Có thể tải các tweet có chứa ảnh không? Tôi hiện đang sử dụng twitter search api và nhận tất cả các tweet có chi tiết thực thể bằng cách đặt include_entities = true. Tôi thấy chi tiết hình ảnh dưới đối tượng phương tiện truyền thông nhưng có anyway để lọc và nhận được các đối tượng tweets mà chỉ có các mặt hàng phương tiện truyền thông. Hoặc là có anyway trong Twitter4j để làm truy vấn này?Nhận Tweet bằng Ảnh bằng cách sử dụng tìm kiếm twitter api

Trả lời

16

Không có cách cụ thể để chỉ định rằng tôi chỉ cần ảnh hoặc video nhưng bạn có thể lọc kết quả dựa trên filter:links hoặc filter:images hoặc filter:videos trong truy vấn của mình cùng với include_entities=true.

Ví dụ: Để có được tweet chứa các liên kết từ 2012-01-31, bạn truy vấn nên có include_entities tham số cũng như filter:links như thể hiện như sau:

https://search.twitter.com/search.json?q=from%3Agoogle%20since%3A2012-01-31%20filter%3Alinks&include_entities=true" 

Như nhu cầu của bạn là để lọc các tweet của bạn dựa trên hình ảnh/ảnh, tôi nghĩ bạn nên sử dụng filter:images.

Một ví dụ về trường hợp của bạn sẽ trông như thế:

https://search.twitter.com/search.json?q=from%3Agoogle%20since%3A2012-01-31%20filter%3Aimages&include_entities=true" 

Hope this helps.

+0

Tìm kiếm bằng bộ lọc: hình ảnh không trả lại bất kỳ kết quả nào. Url google mẫu trong mẫu ở trên không trả lại các tweet chứa hình ảnh mặc dù có các mẩu tin từ google có hình ảnh. Tui bỏ lỡ điều gì vậy? Tôi đã xóa bộ lọc: hình ảnh và nó trả về tweet, một số trong đó có hình ảnh. –

+0

Quên để thêm - bộ lọc: video hoạt động như mong đợi. –

+1

ok tôi đã tìm ra. bộ lọc: hình ảnh chỉ trả về hình ảnh không được tải lên trực tiếp thông qua hình ảnh a.k.a twitter có url bắt đầu từ pic.twitter.com. vì vậy tôi đã sửa đổi truy vấn của mình thành: 'https://search.twitter.com/search.json?q=pic.twitter.com%20OR%20filter%3Aimages%20from%3Agoogle%20since%3A2012-01-31&include_entities=true ' –

2

Với API twitter mới nhất, tôi không thể nhận được bộ lọc hoạt động và tôi không thể tìm thấy bất kỳ lời giải thích nào trong tài liệu của họ. Mặc dù bạn có thể nhận được tất cả các tweets và sau đó phân tích cú pháp chỉ những phương tiện truyền thông. Bạn có thể bắn này nếu bên trong kịch bản phân tích của bạn:

if(this.entities.media != null){ 
    //Parse the tweet 
} 

Đây không phải là giải pháp tốt nhất nhưng phần tồi tệ nhất đến twitter của những người đem lại cho bạn thêm thông tin và sử dụng nhiều tài nguyên của riêng mình.

0

Trong twitter API mới nhất bạn có thể làm điều đó trong trường hợp ConfigurationBuilder, trước khi tạo dụ Twitter:

ConfigurationBuilder cb = new ConfigurationBuilder(); 
cb.setDebugEnabled(false); 
cb.setOAuthConsumerKey(API_KEY); 
cb.setOAuthConsumerSecret(API_SECRET); 
cb.setOAuthAccessToken(ACCESS_TOKEN); 
cb.setOAuthAccessTokenSecret(SECRET_KEY); 
// enabling include_entities parameters 
cb.setIncludeEntitiesEnabled(true); 
Twitter twitterInstance = new TwitterFactory(cb.build()).getInstance(); 

Ngoài ra, sau khi kích hoạt các đối tượng, trong chuỗi tìm kiếm, bạn phải có điều kiện "bộ lọc : hình ảnh ".

List<String> keywords = new ArrayList<String>(); 
keywords.add("#pet"); 
keywords.add("cat"); 
// String.join for Java 8 
String twitterSearchString = "((" + String.join(" OR ", keywords) + ")"; 
// adding the filter condition 
twitterSearchString += " AND filter:images)"; 
Query q = new Query(twitterSearchString); 

Và bạn sẽ chỉ nhận được kết quả bằng hình ảnh (được thử nghiệm với twitter4j-core 4.0.4).

Các vấn đề liên quan