Get twitter embed widget's ID dynamically
| class TwitterWidgetIdExtractor | |
| WIDGET_SETTING_URL = "https://twitter.com/settings/widgets/new/user?screen_name=" | |
| SIGNIN_URL = "https://twitter.com/login" | |
| attr_accessor :screen_name, :twitter_username, :twitter_password | |
| def initialize(screen_name, twitter_username, twitter_password) | |
| @screen_name = screen_name | |
| @twitter_username = twitter_username | |
| @twitter_password = twitter_password | |
| end | |
| def get_widget_id | |
| signin | |
| open_widget_page | |
| extract_id | |
| end | |
| def signin | |
| page = agent.get SIGNIN_URL | |
| page.form_with(action: "https://twitter.com/sessions") do |form| | |
| form.field_with(name: 'session[username_or_email]').value = twitter_username | |
| form.field_with(name: 'session[password]').value = twitter_password | |
| end.submit | |
| end | |
| def open_widget_page | |
| page = agent.get(WIDGET_SETTING_URL+screen_name) | |
| @widget_response = page.form_with(id: 'widget-form').submit | |
| end | |
| def extract_id | |
| @widget_response.search("#code")[0].children[1].attributes['data-widget-id'].value | |
| end | |
| def agent | |
| unless @agent | |
| @agent = Mechanize.new | |
| end | |
| @agent | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
shah743 commentedSep 17, 2014
USAGE
TwitterWidgetIdExtractor.new('rubyonrails', 'your twitter username or email', 'your twitter password').get_widget_idENJOY hacking :D