Michael W. Kearney
Lluís Revilla
Hadley Wickham
boB Rudis
Thomas Keller
Simon Heß
tylermorganwall
Kevin Taylor
Maëlle Salmon
Diego H.
Giorgio Comai
Ben Dilday
Jeroen Ooms
Richard Latham
Mike Chapple
001ben
Aaron Rudkin
Brent Schneeman
Christophe Dervieux
Dave Parr
Dr Tom August
Emil Hvitfeldt
Garrick Aden-Buie
Hiroaki Yutani
Iñaki Ucar
Jem Stachelek
Jennifer (Jenny) Bryan
John Blischak
Jon Harmon
Kohl Kinning
2022-07-21
rtweet 1.0.2
<ul>
<li>Exported again <code>tweets_with_users</code> and <code>users_with_tweets</code> because Twitmo depends on them.</li>
</ul>
rtweet 1.0.1
<ul>
<li><p>Fixed issue with .Rbuilignore and vignettes</p>
</li>
<li><p>Reduced fixtures sizes by limiting the page size to the number of requests if
it is smaller than the default page size.</p>
</li>
</ul>
rtweet 1.0.0
Breaking changes
<ul>
<li><p>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.</p>
</li>
<li><p>emojis, langs and stopwordslangs data are no longer provided by rtweet.</p>
</li>
<li><p><code>get_friends()</code> and <code>get_followers()</code> return similar formatted output with
two columns "from_id" and "to_id" (#308, @alexpghayes).</p>
</li>
<li><p>All paginated functions that don't return tweets now use a consistent
pagination interface. They all store the "next cursor" in an <code>rtweet_cursor</code>
attribute, which will be automatically retrieved when you use the <code>cursor</code>
argument.</p>
</li>
<li><p>Functions that return tweets (e.g. <code>get_favorites()</code>, <code>get_my_timeline()</code>,
<code>get_timeline()</code>, <code>get_mentions()</code>, <code>lists_statuses()</code> and <code>search_tweets()</code>)
now expose a consistent pagination interface. They all support <code>max_id</code> and
<code>since_id</code> to find earlier and later tweets respectively, as well as
<code>retryonratelimit</code> to wait as long as needed when rate limited (#510).</p>
</li>
<li><p><code>suggested_slugs()</code>, <code>suggested_users()</code>, <code>suggested_users_all()</code> have been
removed as they stopped working when Twitter remove the suggested users
endpoint in June 2019 (<a href="https://twittercommunity.com/t/124732">https://twittercommunity.com/t/124732</a>).</p>
</li>
<li><p><code>parse = FALSE</code> always means return the raw "JSON". Previously some functions
(e.g. <code>my_friendships()</code>) would return the raw HTTP response instead (#504).</p>
</li>
<li><p>rtweet no longer re-exports the magrittr pipe <code>%>%</code>; if you want to continue
using it, you'll need to <code>library(magrittr)</code> or <code>library(dplyr)</code> (#522).</p>
</li>
</ul>
Deprecations
<ul>
<li><p>The authentication system has been rewritten, check the following section.</p>
</li>
<li><p><code>lookup_collections()</code> and <code>get_collections()</code> has been hard deprecated
because the underlying Twitter API has been deprecated.</p>
</li>
<li><p><code>previous_cursor()</code> has been hard deprecated. It could only be used with
<code>lists_memberships()</code> and it has been dropped in favour of making regular
pagination better.</p>
</li>
<li><p><code>tweet_shot()</code> has been hard deprecated as the screenshots do not have the
tweet. It might come back with webshot2 (#458).</p>
</li>
<li><p>The <code>home</code> argument to <code>get_timeline()</code> has been deprecated. You can only
retrieve the home timeline for the logged in user, and that's the job of
<code>get_my_timeline()</code> (#550).</p>
</li>
<li><p>Due to the changes on rtweet data format, all the functions related to
flattening the data (<code>write_as_csv()</code>, <code>save_as_csv()</code> <code>flatten()</code>,
<code>unflatten()</code>, <code>read_twitter_csv()</code>) are deprecated.
Users should decide how to flatten the nested structure of the data.</p>
</li>
<li><p><code>lookup_statuses()</code> has been deprecated in favour of <code>lookup_tweets()</code>.</p>
</li>
<li><p><code>as_userid()</code> 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 <code>user_type()</code> function so behaviour is identical for all rtweet
functions.</p>
</li>
<li><p><code>get_timelines()</code> has been deprecated since it does that same thing as
<code>get_timeline()</code> (#509).</p>
</li>
<li><p><code>stream_tweets2()</code> has been deprecated in favour of <code>stream_tweets()</code>.</p>
</li>
</ul>
Authentication
<p>rtweet's authentication system has been completely written. It is now based
around three authentication options: <code>rtweet_user()</code>, <code>rtweet_app()</code>, and
<code>rtweet_bot()</code>. Authentication no longer touches <code>~/.Renviron</code> file; instead
<code>auth_save()</code> and <code>auth_as()</code> allow you to explicitly save and load
authentication mechanisms from a system config directory. See <code>vignette("auth")</code>
for more details.</p>
<ul>
<li><p>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.</p>
</li>
<li><p><code>bearer_token()</code> has been deprecated in favour of <code>rtweet_app()</code>, which takes
the bearer token found in your Twitter developer portal. <code>invalidate_bearer()</code>
has been deprecated since this is something you should do yourself in the
Twitter developer portal.</p>
</li>
<li><p><code>create_token()</code> has been deprecated in favour of the combination of
<code>rtweet_user()</code>/<code>rtweet_bot()</code>/<code>rtweet_app()</code> + <code>auth_as()</code> + <code>auth_save()</code>.</p>
</li>
<li><p><code>get_token()</code> and <code>get_tokens()</code> have been deprecated in favour of
<code>auth_get()</code> and <code>auth_list()</code>.</p>
</li>
<li><p><code>auth_as()</code> accepts path to an authentication to make it easier to use
authentications outside a user account (#602, @maelle)</p>
</li>
<li><p><code>auth_setup_default()</code> will not only authenticate and save but use the
default token.</p>
</li>
<li><p>The new <code>auth_sitrep()</code> helps reports the different authentications of the user</p>
</li>
</ul>
Other changes
<ul>
<li><p>Update to new rOpenSci Code of Conduct: <a href="https://ropensci.org/code-of-conduct/">https://ropensci.org/code-of-conduct/</a></p>
</li>
<li><p><code>lookup_users()</code> and <code>search_users()</code> 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 <code>tweets_data()</code>.</p>
</li>
<li><p>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 <code>retryratelimit = TRUE</code>.</p>
</li>
<li><p>The default value of <code>retryonratelimit</code> comes from the option
<code>rtweet.retryonratelimit</code> so you can globally set it to <code>TRUE</code> if desired
(#173).</p>
</li>
<li><p>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 <code>verbose = FALSE</code> (#518).</p>
</li>
<li><p>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).</p>
</li>
<li><p>Added support for posting alt-text metadata with images tweeted with status
updated via <code>post_tweet()</code>. (#425, @hrbrmstr)</p>
</li>
<li><p><code>stream_tweets()</code> has been overhauled to only write valid data. This obsoletes
all previous strategy to clean up bad data after the fact (#350, #356).</p>
</li>
<li><p>The maintainer changed.</p>
</li>
<li><p>New <code>user_block()</code> and <code>user_unblock()</code> to block and unblock users (#593,
@simonheb).</p>
</li>
<li><p>The new <code>tweet_threading</code> function is now faster and more reliable (#305,
#693, @charliejhadley).</p>
</li>
<li><p>Message are now properly capitalized (#565, @jsta)</p>
</li>
<li><p>Fields <code>withheld_scope</code>, <code>withheld_copyright</code>, <code>withheld_in_countries</code> are
now correctly parsed (#647, @alexpghayes).</p>
</li>
<li><p>Functions like <code>search_tweets()</code>, <code>lookup_statuses()</code> and others return the
appropriate date time format for the right columns (<code>created_at</code> mostly)
(#653, #657, #660, @alexpghayes, @RickPat).</p>
</li>
<li><p>Premium/sandbox environments are supported in <code>search_fullarchive()</code> and
<code>search_30day()</code> (#578, #713).</p>
</li>
<li><p>The vignette must be pre-computed before submission (#609, @maelle).</p>
</li>
</ul>
https://doi.org/10.5281/zenodo.6874463
oai:zenodo.org:6874463
Zenodo
https://github.com/ropensci/rtweet/tree/v1.0.2
https://doi.org/10.5281/zenodo.2528480
info:eu-repo/semantics/openAccess
Other (Open)
ropensci/rtweet: rtweet 1.0.2
info:eu-repo/semantics/other