Skip to content

rtweet 1.0.2

Compare
Choose a tag to compare
@llrs llrs released this 21 Jul 10:09
d254519

rtweet 1.0.2

  • Exported again tweets_with_users and users_with_tweets because Twitmo depends on them.

rtweet 1.0.1

  • Fixed issue with .Rbuilignore and vignettes

  • Reduced fixtures sizes by limiting the page size to the number of requests if
    it is smaller than the default page size.

rtweet 1.0.0

Breaking changes

  • Data returned by rtweet is nested and uses the same names provided by
    the Twitter API. It doesn't compute or add new columns as it did previously.

  • emojis, langs and stopwordslangs data are no longer provided by rtweet.

  • get_friends() and get_followers() return similar formatted output with
    two columns "from_id" and "to_id" (#308, @alexpghayes).

  • 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 cursor
    argument.

  • Functions that return tweets (e.g. get_favorites(), get_my_timeline(),
    get_timeline(), get_mentions(), lists_statuses() and search_tweets())
    now expose a consistent pagination interface. They all support max_id and
    since_id to find earlier and later tweets respectively, as well as
    retryonratelimit to wait as long as needed when rate limited (#510).

  • suggested_slugs(), suggested_users(), 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).

  • parse = FALSE always means return the raw "JSON". Previously some functions
    (e.g. my_friendships()) would return the raw HTTP response instead (#504).

  • rtweet no longer re-exports the magrittr pipe %>%; if you want to continue
    using it, you'll need to library(magrittr) or library(dplyr) (#522).

Deprecations

  • The authentication system has been rewritten, check the following section.

  • lookup_collections() and get_collections() has been hard deprecated
    because the underlying Twitter API has been deprecated.

  • previous_cursor() has been hard deprecated. It could only be used with
    lists_memberships() and it has been dropped in favour of making regular
    pagination better.

  • tweet_shot() has been hard deprecated as the screenshots do not have the
    tweet. It might come back with webshot2 (#458).

  • The home argument to get_timeline() has been deprecated. You can only
    retrieve the home timeline for the logged in user, and that's the job of
    get_my_timeline() (#550).

  • Due to the changes on rtweet data format, all the functions related to
    flattening the data (write_as_csv(), save_as_csv() flatten(),
    unflatten(), read_twitter_csv()) are deprecated.
    Users should decide how to flatten the nested structure of the data.

  • lookup_statuses() has been deprecated in favour of lookup_tweets().

  • 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.

  • get_timelines() has been deprecated since it does that same thing as
    get_timeline() (#509).

  • stream_tweets2() has been deprecated in favour of stream_tweets().

Authentication

rtweet's authentication system has been completely written. It is now based
around three authentication options: rtweet_user(), rtweet_app(), and
rtweet_bot(). Authentication no longer touches ~/.Renviron file; instead
auth_save() and 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.

  • create_token() has been deprecated in favour of the combination of
    rtweet_user()/rtweet_bot()/rtweet_app() + auth_as() + auth_save().

  • get_token() and get_tokens() have been deprecated in favour of
    auth_get() and auth_list().

  • auth_as() accepts path to an authentication to make it easier to use
    authentications outside a user account (#602, @maelle)

  • auth_setup_default() will not only authenticate and save but use the
    default token.

  • The new auth_sitrep() helps reports the different authentications of the user

Other changes

  • Update to new rOpenSci Code of Conduct: https://ropensci.org/code-of-conduct/

  • lookup_users() and search_users() now returns a data frame containing
    all information about each user (not their latest tweet). If you want to get
    that data you can use tweets_data().

  • 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.

  • The default value of retryonratelimit comes from the option
    rtweet.retryonratelimit so you can globally set it to TRUE if desired
    (#173).

  • 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).

  • Banned or protected accounts now trigger a warning instead of an error,
    but if data from other users is requested it is not served by the API and
    returned as NA (#590, @simonheb).

  • Added support for posting alt-text metadata with images tweeted with status
    updated via post_tweet(). (#425, @hrbrmstr)

  • stream_tweets() has been overhauled to only write valid data. This obsoletes
    all previous strategy to clean up bad data after the fact (#350, #356).

  • The maintainer changed.

  • New user_block() and user_unblock() to block and unblock users (#593,
    @simonheb).

  • The new tweet_threading function is now faster and more reliable (#305,
    #693, @charliejhadley).

  • Message are now properly capitalized (#565, @jsta)

  • Fields withheld_scope, withheld_copyright, withheld_in_countries are
    now correctly parsed (#647, @alexpghayes).

  • Functions like search_tweets(), lookup_statuses() and others return the
    appropriate date time format for the right columns (created_at mostly)
    (#653, #657, #660, @alexpghayes, @Rickpat).

  • Premium/sandbox environments are supported in search_fullarchive() and
    search_30day() (#578, #713).

  • The vignette must be pre-computed before submission (#609, @maelle).