tweet_target.rb 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. class TweetTarget < ActiveRecord::Base
  2. extend AmazonCredentials
  3. require "open-uri"
  4. belongs_to :tweet
  5. has_attached_file :image, amazon_credentials
  6. validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/
  7. after_save :attach_twitter_image
  8. def url
  9. "https://twitter.com/" + twitter_id
  10. end
  11. def image_url
  12. image.url
  13. end
  14. def attach_twitter_image
  15. self.delay.attach_twitter_image_without_delay if image_file_name.nil? and Twitter.has_api_keys?
  16. end
  17. def attach_twitter_image_without_delay
  18. access_token = Twitter.prepare_access_token Rails.application.secrets.twitter_oauth_token, Rails.application.secrets.twitter_oauth_token_secret
  19. # ref: https://dev.twitter.com/overview/general/user-profile-images-and-banners
  20. response = access_token.request(:get, "https://api.twitter.com/1.1/users/show.json?screen_name=" + twitter_id)
  21. user_info = JSON.parse response.body
  22. user_image_url = user_info["profile_image_url_https"].gsub(/_normal\./, "_bigger.")
  23. self.image = URI.parse(user_image_url)
  24. self.save
  25. end
  26. end