2022-04-04 19:13:35 +00:00
<!DOCTYPE html>
< html class = "no-js" lang = "en" >
< head >
< title > TwitterV2 - RSS-Bridge< / title >
< meta name = "description" content = "The RSS feed for websites missing it" >
< meta name = "author" content = "RSS-Bridge Contributors" >
< meta charset = "UTF-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< link rel = "icon" href = "../themes/daux/img/favicon-blue.png" type = "image/x-icon" >
<!-- Mobile -->
< meta name = "apple-mobile-web-app-capable" content = "yes" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
<!-- JS -->
< script >
window.base_url = "../";
document.documentElement.classList.remove('no-js');
< / script >
<!-- Font -->
<!-- CSS -->
< link href = '../themes/daux/css/theme-blue.min.css' rel = 'stylesheet' type = 'text/css' >
< link href = '../daux_libraries/search.css' rel = 'stylesheet' type = 'text/css' >
< / head >
< body class = "" >
< div class = "Columns content" >
< aside class = "Columns__left Collapsible" >
< button type = "button" class = "Button Collapsible__trigger" aria-controls = "sidebar_content" aria-expanded = "false" aria-label = "Toggle navigation" >
< span class = "Collapsible__trigger__bar" > < / span >
< span class = "Collapsible__trigger__bar" > < / span >
< span class = "Collapsible__trigger__bar" > < / span >
< / button >
< a class = "Brand" href = "../index.html" > RSS-Bridge< / a >
< form role = 'search' action = "/" method = "get" class = "Search" id = "search_form" >
< label for = "search_input" >
< span class = 'u-visuallyHidden' > Search< / span >
< / label >
< input
type="search"
id="search_input"
class="Search__field"
placeholder="Search..."
aria-label="Search..."
autocomplete="on"
results=25
autosave=text_search
>
< label >
< input type = "submit" class = 'u-visuallyHidden' / >
< span class = 'u-visuallyHidden' > Search...< / span >
< svg class = "Search__icon" xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 451 451" >
< path d = "M447.05 428l-109.6-109.6c29.4-33.8 47.2-77.9 47.2-126.1C384.65 86.2 298.35 0 192.35 0 86.25 0 .05 86.3.05 192.3s86.3 192.3 192.3 192.3c48.2 0 92.3-17.8 126.1-47.2L428.05 447c2.6 2.6 6.1 4 9.5 4s6.9-1.3 9.5-4c5.2-5.2 5.2-13.8 0-19zM26.95 192.3c0-91.2 74.2-165.3 165.3-165.3 91.2 0 165.3 74.2 165.3 165.3s-74.1 165.4-165.3 165.4c-91.1 0-165.3-74.2-165.3-165.4z" / >
< / svg >
< / label >
< / form >
< div class = "Collapsible__content" id = "sidebar_content" >
<!-- Navigation -->
2025-01-04 18:00:48 +00:00
< ul class = 'Nav' > < li class = 'Nav__item has-children' > < a href = "../General/Project_goals.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > General< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../General/Project_goals.html" > Project-goals< / a > < / li > < li class = 'Nav__item ' > < a href = "../General/Contribute.html" > Contribute< / a > < / li > < li class = 'Nav__item ' > < a href = "../General/Requirements.html" > Requirements< / a > < / li > < li class = 'Nav__item ' > < a href = "../General/Screenshots.html" > Screenshots< / a > < / li > < li class = 'Nav__item ' > < a href = "../General/FAQ.html" > FAQ< / a > < / li > < li class = 'Nav__item ' > < a href = "../General/Public_Hosts.html" > Public Hosts< / a > < / li > < / ul > < / li > < li class = 'Nav__item ' > < a href = "../CLI/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > CLI< / a > < ul class = 'Nav' > < / ul > < / li > < li class = 'Nav__item has-children' > < a href = "../For_Hosts/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > For Hosts< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../For_Hosts/Installation.html" > Installation< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Updating.html" > Updating< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Heroku_Installation.html" > Heroku Installation< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Whitelisting.html" > Whitelisting< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Authentication.html" > Authentication< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Customizations.html" > Customizations< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Custom_Configuration.html" > Custom Configuration< / a > < / li > < / ul > < / li > < li class = 'Nav__item has-children' > < a href = "../For_Developers/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > For Developers< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../For_Developers/Coding_style_policy.html" > Coding style policy< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Developers/Pull_Request_policy.html" > Pull Request policy< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Developers/Folder_structure.html" > Folder structure< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Developers/Actions.html" > Actions< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Developers/Debug_mode.html" > Debug mode< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Developers/Github_Codespaces_Tutorial.html" > Github Codespaces Tutorial< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Developers/Development_Environment_Setup.html" > Development Environment Setup< / a > < / li > < / ul > < / li > < li class = 'Nav__item has-children' > < a href = "../Bridge_API/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > Bridge API< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../Bridge_API/How_to_create_a_new_bridge.html" > How to create a new bridge< / a > < / li > < li class = 'Nav__item ' > < a href = "../Bridge_API/BridgeAbstract.html" > BridgeAbstract< / a > < / li > < li class = 'Nav__item ' > < a href = "../Bridge_API/FeedExpander.html" > FeedExpander< / a > < / li > < li class = 'Nav__item ' > < a href = "../Bridge_API/WebDriverAbstract.html" > WebDriverAbstract< / a > < / li > < li class = 'Nav__item ' > < a href = "../Bridge_API/XPathAbstract.html" > XPathAbstract< / a > < / li > < / ul > < / li > < li class = 'Nav__item ' > < a href = "../Helper_functions/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > Helper functions< / a > < ul class = 'Nav' > < / ul > < / li > < li class = 'Nav__item has-children' > < a href = "../Cache_API/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > Cache API< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../Cache_API/How_to_create_a_new_cache.html" > How to create a new cache< / a > < / li > < li class = 'Nav__item ' > < a href = "../Cache_API/CacheInterface.html" > CacheInterface< / a > < / li > < / ul > < / li > < li class = 'Nav__item ' > < a href = "../Technical_recommendations/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > Technical recommendations< / a > < ul class = 'Nav' > < / ul > < / li > < li class = 'Nav__item Nav__item--open has-children' > < a href = "../Bridge_Specific/ActivityPub_(Mastodon).html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > Bridge Specific< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../Bridge_Specif
2022-04-04 19:13:35 +00:00
< div class = "Links" >
< hr / >
< a href = "https://github.com/RSS-Bridge/rss-bridge" target = "_blank" rel = "noopener noreferrer" > GitHub Repository< / a >
< br / >
< a href = "https://github.com/RSS-Bridge/rss-bridge/issues" target = "_blank" rel = "noopener noreferrer" > Help/Support/Bugs< / a >
< br / >
< a href = "https://github.com/RSS-Bridge/rss-bridge/pkgs/container/rss-bridge" target = "_blank" rel = "noopener noreferrer" > Docker Images< / a >
< br / >
< / div >
< div class = "CodeToggler" >
< hr / >
< label class = "Checkbox" > Show Code Blocks < input type = "checkbox" class = "CodeToggler__button--main" checked = "checked" / >
< div class = "Checkbox__indicator" > < / div >
< / label >
< / div >
2022-10-06 20:13:30 +00:00
< div class = "DarkModeToggler" >
< hr / >
< label class = "Checkbox" > Dark Mode < input type = "checkbox" class = "ColorMode__button" / >
< div class = "Checkbox__indicator" > < / div >
< / label >
< / div >
2022-04-04 19:13:35 +00:00
< div class = "PoweredBy" >
< hr / >
Powered by Daux.io < / div >
< / div >
< / aside >
< div class = "Columns__right" >
< div class = "Columns__right__content" >
< div class = "doc_content" >
< article class = "Page" >
< div class = "Page__header" >
2022-06-20 23:12:11 +00:00
< h1 > < a href = "../Bridge_Specific/ActivityPub_(Mastodon).html" > Bridge Specific< / a > < svg class = "Page__header--separator" xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 477.175 477.175" > < path d = "M360.73 229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1 0s-5.3 13.8 0 19.1l215.5 215.5-215.5 215.5c-5.3 5.3-5.3 13.8 0 19.1 2.6 2.6 6.1 4 9.5 4 3.4 0 6.9-1.3 9.5-4l225.1-225.1c5.3-5.2 5.3-13.8.1-19z" / > < / svg > < a href = "../Bridge_Specific/TwitterV2.html" > TwitterV2< / a > < / h1 >
2022-04-04 19:13:35 +00:00
< span class = "ModifiedDate" >
2025-01-04 18:00:48 +00:00
January 4, 2025 at 10:00 AM < / span >
2022-04-04 19:13:35 +00:00
< span class = "EditOn" >
< a href = "https://github.com/RSS-Bridge/rss-bridge/tree/master/docs/10_Bridge_Specific/TwitterV2.md" target = "_blank" >
Edit on GitHub < / a >
< / span >
< / div >
< div class = "s-content" >
< h1 > < a id = "twitterv2bridge" href = "#twitterv2bridge" class = "Permalink" aria-hidden = "true" title = "Permalink" > #< / a > TwitterV2Bridge< / h1 >
< p > To automatically retrieve Tweets containing potentially sensitive/age-restricted content, you’ ll need to acquire your own unique API Bearer token, which will be used by this Bridge to query Twitter’ s API v2.< / p >
< h2 > < a id = "configuration" href = "#configuration" class = "Permalink" aria-hidden = "true" title = "Permalink" > #< / a > Configuration< / h2 >
< ol >
< li >
< p > Make a Twitter Developer account< / p >
< ul >
< li >
< p > Developer Portal: < a href = "https://dev.twitter.com" class = "Link--external" rel = "noopener noreferrer" > https://dev.twitter.com< / a > < / p >
< / li >
< li >
< p > I will not detail exactly how to do this, as the specific process will likely change over time. You should easily be able to find guides using your search engine of choice.< / p >
< / li >
< li >
2023-04-14 19:32:45 +00:00
< p > Note: as of April 2023, the “Free” access level no longer allows read access. The cheapest access level with read access is called “Basic”.< / p >
2022-04-04 19:13:35 +00:00
< / li >
< / ul >
< / li >
< li >
< p > Create a Twitter Project and App, get Bearer Token< / p >
< ul >
< li >
< p > Once you have an active Twitter Developer account, sign in to the dev portal< / p >
< / li >
< li >
< p > Create a new Project (name doesn’ t matter)< / p >
< / li >
< li >
< p > Create an App within the Project (again, name doesn’ t matter)< / p >
< / li >
< li >
< p > Go to the < strong > Keys and tokens< / strong > tab< / p >
< / li >
< li >
< p > Generate a < strong > Bearer Token< / strong > (you don’ t want the API Key and Secret, or the Access Token and Secret)< / p >
< / li >
< / ul >
< / li >
< li >
< p > Configure RSS-Bridge< / p >
< ul >
< li > In < strong > config.ini.php< / strong > (in rss-bridge root directory) add following lines at the end:< / li >
< / ul >
< pre > < code > [TwitterV2Bridge]
twitterv2apitoken = %Bearer Token from step 2%
< / code > < / pre >
< ul >
2025-01-02 12:12:42 +00:00
< li > If you don’ t have a < strong > config.ini.php< / strong > , create one by making a copy of < strong > config.default.ini.php< / strong > < / li >
2022-04-04 19:13:35 +00:00
< / ul >
< / li >
< / ol >
< / div >
< nav >
< ul class = "Pager" >
2025-01-04 18:00:48 +00:00
< li class = Pager--prev > < a href = "../Bridge_Specific/Telegram.html" > Previous< / a > < / li > < li class = Pager--next > < a href = "../Bridge_Specific/Vk2.html" > Next< / a > < / li > < / ul >
2022-04-04 19:13:35 +00:00
< / nav >
< / article >
< / div >
< / div >
< / div >
< / div >
<!-- JS -->
< script src = "../themes/daux/js/daux.min.js" > < / script >
< script >
window.searchLanguage = "";
window.searchTranslation = {"Search_one_result":"1 result","Search_results":"!count results","Search_no_results":"Nothing found","Search_common_words_ignored":"Common words are largely ignored","Search_too_short":"Search too short","Search_one_character_or_more":"Should be one character or more","Search_should_be_x_or_more":"Should be !min characters or more","Link_previous":"Previous","Link_next":"Next"};
< / script >
<!-- Search -->
< script type = "text/javascript" src = "../daux_libraries/search.min.js" > < / script >
< script >
window.search({'base_url': '../'})
< / script >
< / body >
< / html >