The default value of
retryonratelimit comes from the option
rtweet.retryonratelimit so you can globally set it to
TRUE if desired (#173).
All paginated functions that don’t return tweets now use a consistent pagination interface. They all store the “next cursor” in an
rtweet_cursor attribute, which will be automatically retrieved when you use the
Functions that return tweets (e.g.
search_tweets()) now expose a consistent pagination interface. They all support
since_id to find earlier and later tweets respectively, as well as
retryonratelimit to wait as long as needed when rate limited (#510).
All functions that perform multiple requests on your behalf now display a progress bar so you know what’s happening. If you don’t want it, you can turn it off with
verbose = FALSE (#518).
as_userid() has been deprecated since in case of ambiguity the default is to assume a numeric string is a user id (#520). All functions now use a single
user_type() function so behaviour is identical for all rtweet functions.
rtweet 1.0.0 implements a consistent strategy for handling rate limits. By default, if a paginated function (i.e. a rtweet function that performs multiple calls to the twitter API) is rate-limited it will return all results received up to that point, along with a warning telling you how to get more results. Alternatively, if you want to automatically wait until the rate-limit is reset, you can set
retryratelimit = TRUE.
rate_limit() interface has been drastically simplified.
suggested_users_all() have been removed as they stopped working when Twitter remove the suggested users endpoint in June 2019 (https://twittercommunity.com/t/124732).
Update to new rOpenSci Code of Conduct: https://ropensci.org/code-of-conduct/
rtweet’s authentication system has been completely written. It is now based around three authentication options:
rtweet_bot(). Authentication no longer touches
~/.Renviron file; instead
auth_as() allow you to explicitly save and load authentication mechanisms from a system config directory. See
vignette("auth") for more details.
The httpuv package is now only suggested, since it’s only needed for interactive auth, and you’ll be prompted to install it when needed.
bearer_token() has been deprecated in favour of
rtweet_app(), which takes the bearer token found in your Twitter developer portal.
invalidate_bearer() has been deprecated since this is something you should do yourself in the Twitter developer portal.
lookup_coords()now requires a Google Maps API key. It will be stored for easy future use once supplied.
post_list(), which now allows users to create and populate lists as well as delete lists on behalf of one’s own Twitter account.
lists_memberships()and now scrolls through multiple pages of results to automate collection of larger numbers of lists.
create_token()which allows for creation of token non-interactive sessions via accepting inputs for consumer key, consumer secret (always required), oauth key, and oauth secret (optional, if supplied then non-browser sign method is used).
ts_*()functions now offer a
tz(timezone) argument, allowing users to more easily print and plot in non-UTC time.
join_rtweet(), which omitted users who didn’t have available tweets.
all_suggested_users(), which automates the collection of Twitter’s suggested users data.
save_as_csv(), including addition of new
prep_as_csv()as convenience function for flattening Twitter data frames.
save_as_csv()with improved flattening and ID-preserving saving methods. The function now saves a single [joined] data set as well.
get_favorites()and in several
stream_tweets2()function for more robust streaming method. Streams JSON files to directory and reconnects following premature disruptions.
get_followers()now accept vectors of length > 1.
stream_data(), designed to parse files that cannot wholely fit into memory.
stream_data()can now work in parallel as well.
post_status()function has been fixed and can now be used to upload media.
mentions_screen_namemay consist of 4 screen names).
flatten()function. Exporting functions such as
save_as_csvwill apply flatten by default.
bbox_coordsbounding box. The first two come in pairs of coords (a list column) and bbox_coords comes with 8 values (longX4 latX4). This should allow users to maximize returns on geo-location data.
post_. This was done to clearly distinguish write functions from retrieval functions.
ts_plot()function is now more robust with more adaptive characteristics for variations in the number of filters, the method of distinguishing lines, the position of the legend, and the aesthetics of the themes.
ts_filter()function which allows users to convert Twitter data into a time series-like data frame. Users may also provide filtering rules with which
ts_filter()will subset the data as it converts it to multiple time series, which it then outputs as a long-form (tidy) data frame.
retryonratelimitargument to allow for searches requesting more than 18,000 tweets. This automates what was previously possible through use of
ts_plotto enable different filtered time series and an aesthetic overhaul of the plot function as well.
as_doubleargument to provide flexibility in handling id variables (as_double provides performance boost but can create problems when printing and saving, depending on format). By default functions will return IDs as character vectors.
clean_tweetsargument provided to allow user more control over encoding and handling of non-ascii characters.
search_usersand implemented several improvements to
token, rtweet will find it.
include_retweetsarg added to
user_idclass changed to double when parsed. double is significantly faster and consumes less space. it’s also capable of handling the length of id scalars, so the only downside is truncated printing.
stream_tweets()function. By default, the streaming query argument,
q, is now set to an empty string,
q = "", which returns a random sample of all Tweets (pretty cool, right?).
post_tweet()function. Users can now post tweets from their R console.
lookup_statuses() function, which is the counterpart to
lookup_users(). Supply a vector of status IDs and return tweet data for each status.
lookup_statuses() is particularly powerful when combined with other methods designed to collect older Tweets. Early experiments with doing this all through R have turned out surprisingly well, but packaging it in a way that makes it easy to do on other machines is unlikely to happen in the short term.
Removed dplyr dependencies. Everyone should install and use
dplyr, but for sake of parsimony, it’s been removed from rtweet.
Continued development of S4 classes and methods. Given removal of dplyr dependencies, I’ve started to integrate print/show methods that will limit the number of rows (and width of columns) when printed. Given the amount of data returned in a relatively short period of time, printing entire data frames quickly becomes headache-inducing.
Stability improvements including integration with Travis CI and code analysis via codecov. Token encryption method also means API testing conducted on multiple machines and systems.
search_users()function! Search for users by keyword, name, or interest and return data on the first 1000 hits.
lookup_users() now consists of users data and contains tweets data attribute.
Updated testthat tests
Since previous CRAN release, numerous new features and improvements to functions returning tweets, user data, and ids.
Search function now optimized to return more tweets per search.
Numerous improvements to stability, error checks, and namespace management.
get_followers. Returns list with value (
next_cursor) used for next page of results. When this value is 0, all results have been returned.
get_followers now return the list of user ids as a tibble data table, which makes the print out much cleaner.
Improved scrolling methods such that
get_timeline should return a lot more now
parser function to return status (tweets) AND user (users) data frames when available. As a result, the parsed output for some functions now comes as a list containing two data frames.
get_timeline function that returns tweets from selected user
Added vignettes covering tokens and search tweets
Fixed issue with
count argument in search and user functions
Fixed parsing issue for return objects with omitted variables
clean_tweets convenience function for text analysis
More examples included in documentation.
recode_error argument to
get_friends function. This is especially useful for tracking networks over time.
ROAuth methods/objects to increase compatibility with
Improved token checking procedures.
There are now two stable parse (convert json obj to data frame) types. For user objects (e.g., output of
lookup_users), there is
parse_user. For tweet objects (e.g., output of
stream_tweets), there is
New parse functions are now exported, so they should available for use with compatible Twitter packages or user-defined API request operations.
More parsing improvements
Various stability improvements