Crate twitter_stream [−] [src]
Twitter Stream
A library for listening on Twitter Streaming API.
Usage
Add twitter-stream to your dependencies in your project's Cargo.toml:
[dependencies]
twitter-stream = "0.2"
and this to your crate root:
extern crate twitter_stream;
Overview
Here is a basic example that prints each Tweet's text from User Stream:
extern crate futures; extern crate twitter_stream; use futures::{Future, Stream}; use twitter_stream::{StreamMessage, Token, TwitterStream}; let token = Token::new("consumer_key", "consumer_secret", "access_key", "access_secret"); let stream = TwitterStream::user(&token).unwrap(); stream .for_each(|msg| { if let StreamMessage::Tweet(tweet) = msg { println!("{}", tweet.text); } Ok(()) }) .wait().unwrap();
In the example above, stream disconnects and returns an error when a JSON message from Stream has failed to parse.
If you don't want this behavior, you can opt to parse the messages manually:
extern crate serde_json; use twitter_stream::{StreamMessage, Token, TwitterJsonStream}; let stream = TwitterJsonStream::user(&token).unwrap(); stream .for_each(|json| { if let Ok(StreamMessage::Tweet(tweet)) = serde_json::from_str(&json) { println!("{}", tweet.text); } Ok(()) }) .wait().unwrap();
Reexports
pub use direct_message::DirectMessage; |
pub use entities::Entities; |
pub use error::Error; |
pub use error::StreamError; |
pub use error::Result; |
pub use geometry::Geometry; |
pub use list::List; |
pub use message::StreamMessage; |
pub use place::Place; |
pub use tweet::Tweet; |
pub use user::User; |
Modules
| direct_message |
Direct messages |
| entities |
Entities |
| error |
Error types |
| geometry |
Geometry object |
| list |
Lists |
| message |
Messages from Streaming API. |
| place |
Place |
| tweet |
Tweets |
| types |
Common types used across the crate. |
| user |
Users |
Structs
| Token |
A token used to log into Twitter. |
| TwitterJsonStream |
Same as |
| TwitterStream |
A listener for Twitter Streaming API. |
| TwitterStreamBuilder |
A builder for |