Module: PWN::Plugins::TwitterAPI
- Defined in:
- lib/pwn/plugins/twitter_api.rb
Overview
This plugin converts images to readable text TODO: Convert all rest requests to POST instead of GET
Constant Summary collapse
Class Method Summary collapse
-
.app_only_login(opts = {}) ⇒ Object
- Supported Method Parameters
-
bearer_token = PWN::Plugins::TwitterAPI.app_only_login( consumer_key: ‘required - consumer key for app-only authentication’, consumer_secret: ‘optional - consumer secret (will prompt if nil)’ ).
-
.app_only_logout(opts = {}) ⇒ Object
- Supported Method Parameters
-
PWN::Plugins::TwitterAPI.logout( bearer_token: ‘required bearer_token returned from #app_only_login method’ ).
-
.authors ⇒ Object
- Author(s)
-
0day Inc.
-
.help ⇒ Object
Display Usage for this Module.
Class Method Details
.app_only_login(opts = {}) ⇒ Object
- Supported Method Parameters
-
bearer_token = PWN::Plugins::TwitterAPI.app_only_login(
consumer_key: 'required - consumer key for app-only authentication', consumer_secret: 'optional - consumer secret (will prompt if nil)'
)
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/pwn/plugins/twitter_api.rb', line 19 public_class_method def self.app_only_login(opts = {}) base_api_uri = 'https://api.twitter.com' consumer_key = opts[:consumer_key].to_s.strip.chomp.scrub consumer_secret = if opts[:consumer_secret].nil? PWN::Plugins::AuthenticationHelper.mask_password(prompt: 'Consumer Secret') else opts[:consumer_secret].to_s.chomp.strip.scrub end authz_str = Base64.strict_encode64("#{consumer_key}:#{consumer_secret}") http_headers = {} http_headers[:content_type] = 'application/x-www-form-urlencoded;charset=UTF-8' http_headers[:authorization] = "Basic #{authz_str}" @@logger.info("Logging into TwitterAPI REST API: #{base_api_uri}") browser_obj = PWN::Plugins::TransparentBrowser.open(browser_type: :rest) rest_client = browser_obj[:browser]::Request response = rest_client.execute( method: :post, url: "#{base_api_uri}/oauth2/token", headers: http_headers, payload: 'grant_type=client_credentials' ) # Return array containing the post-authenticated TwitterAPI REST API token json_response = JSON.parse(response, symbolize_names: true) json_response[:access_token] rescue StandardError => e raise e end |
.app_only_logout(opts = {}) ⇒ Object
- Supported Method Parameters
-
PWN::Plugins::TwitterAPI.logout(
bearer_token: 'required bearer_token returned from #app_only_login method'
)
116 117 118 119 120 121 122 123 |
# File 'lib/pwn/plugins/twitter_api.rb', line 116 public_class_method def self.app_only_logout(opts = {}) bearer_token = opts[:bearer_token] @@logger.info('Logging out...') # TODO: Terminate Session if Possible via API Call bearer_token = nil rescue StandardError => e raise e end |
.authors ⇒ Object
- Author(s)
-
0day Inc. <[email protected]>
127 128 129 130 131 |
# File 'lib/pwn/plugins/twitter_api.rb', line 127 public_class_method def self. "AUTHOR(S): 0day Inc. <[email protected]> " end |
.help ⇒ Object
Display Usage for this Module
135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/pwn/plugins/twitter_api.rb', line 135 public_class_method def self.help puts "USAGE: bearer_token = #{self}.app_only_login( consumer_key: 'required - consumer key for app-only authentication', consumer_secret: 'optional - consumer secret (will prompt if nil)' ) #{self}.app_only_logout( bearer_token: 'required bearer_token returned from #app_only_login method' ) #{self}.authors " end |