diff options
-rw-r--r-- | app/helpers/twitter_helper.rb | 28 | ||||
-rw-r--r-- | app/views/twitter/_index.html.erb | 15 | ||||
-rw-r--r-- | doc/TWITTER_FEED.md | 19 | ||||
-rwxr-xr-x | script/generate_bearer_token | 6 |
4 files changed, 58 insertions, 10 deletions
diff --git a/app/helpers/twitter_helper.rb b/app/helpers/twitter_helper.rb index f824a03..719f95e 100644 --- a/app/helpers/twitter_helper.rb +++ b/app/helpers/twitter_helper.rb @@ -23,6 +23,30 @@ module TwitterHelper twitter_user_info[0] = Time.now twitter_user_info[1] = twitter_client.user(twitter_handle).name twitter_user_info[2] = twitter_client.user_timeline(twitter_handle).select{ |tweet| tweet.text.start_with?('RT','@')==false}.take(3) + if twitter_user_info[2] == nil + error_handling + twitter_user_info[3] = "The twitter-handle does not exist or the account is private. Please change it or contact your provider-admin." + end + rescue Twitter::Error::BadRequest + error_handling + twitter_user_info[3] = "The request to have the tweets shown was invalid or cannot be otherwise served." + rescue Twitter::Error::Unauthorized + error_handling + twitter_user_info[3] = "Please change your twitter-credentials, make sure that the twitter-account you access is public or contact your provider-admin to have the tweets shown." + rescue Twitter::Error::Forbidden + error_handling + twitter_user_info[3] = "The request to have the tweets shown is understood, but it has been refused or access is not allowed." + rescue Twitter::Error::NotAcceptable + error_handling + twitter_user_info[3] = "An invalid format is specified in the request to have the tweets shown." + rescue Twitter::Error::TooManyRequests + error_handling + twitter_user_info[3] = "The rate-limit for accessing the tweets is reached. You should be able to see the tweets in a couple of minutes." + end + + def error_handling + twitter_user_info[2] = [] + return twitter_user_info end def cached_info @@ -43,4 +67,8 @@ module TwitterHelper def tweets cached_info[2] end + + def error_message + cached_info[3] + end end diff --git a/app/views/twitter/_index.html.erb b/app/views/twitter/_index.html.erb index a7ebd1b..8529b83 100644 --- a/app/views/twitter/_index.html.erb +++ b/app/views/twitter/_index.html.erb @@ -9,14 +9,15 @@ </div> <div class="twitter_list"> - <% tweets.each do |e| %> - <div class="tweet"> - <div class="tweet_text"><%= " #{e.text}" %> + <%if tweets == [] then%><%= error_message %><% end %> + <% tweets.each do |e| %> + <div class="tweet"> + <div class="tweet_text"><%= " #{e.text}" %> + </div> + <div class="tweet_text_date">tweeted on <% t = e.created_at%> <%= t.strftime("%m/%d/%y").to_s %> + </div> </div> - <div class="tweet_text_date">tweeted on <% t = e.created_at%> <%= t.strftime("%m/%d/%y").to_s %> - </div> - </div> - <% end %> + <% end %> </div> <div class="twitter_footer"> diff --git a/doc/TWITTER_FEED.md b/doc/TWITTER_FEED.md index dd3954c..94de8c1 100644 --- a/doc/TWITTER_FEED.md +++ b/doc/TWITTER_FEED.md @@ -19,12 +19,29 @@ LEAP web app (as part of the main view). * Activate the feature within your local LEAP Web Application * If not already existing create a secrets-file in /config with the name secrets.yml (`/config/secrets.yml`) * Secrets-file should contain the following, make sure its in YAML: {"development"=> {"twitter"=>{"enabled"=>false, "twitter_handle"=>"", "bearer_token"=>"", "twitter_picture"=>nil}}, "test"=>{"twitter"=>{"enabled"=>false, "twitter_handle"=>"", "bearer_token"=>"", "twitter_picture"=>nil}}} +``` +development: + twitter: + enabled: false # set to true for usage + twitter_handle: XXXXX #put your twitter handle here + bearer_token: XXXXX #put your bearer token here +test: + twitter: + enabled: false # set to true for usage + twitter_handle: XXXXX #put your twitter handle here + bearer_token: XXXXX #put your bearer token here +production: + twitter: + enabled: false # set to true for usage + twitter_handle: XXXXX #put your twitter handle here + bearer_token: XXXXX #put your bearer token here +``` * To have your bearer token created, run script in terminal being in the file of leap_web: `script/generate_bearer_token` * To have the script run properly you have to add before running: `--key your_consumerkey --secret your_consumersecret` * Add also `--projectroot your_projectroot --twitterhandle your_twitterhandle` as well to not have manually put the data in your secrets-file * The full command looks like this: `script/generate_bearer_token --key your_consumerkey --secret your_consumersecret --projectroot your_projectroot --twitterhandle your_twitterhandle` * If you didn't give all your information to the script, had a typo or want to change anything else, please do so by finding the secrets-file at `/config/secrets.yml` - * Make sure that the correct twitterhandle and bearer-token is included + * Make sure that the correct twitterhandle and bearer-token is included. The twitter-account you want to have shown (the twitterhandle) is a public account! * Deactivate your bearer token * To deactivate your generated bearer token you can run script/invalidate_bearer_token diff --git a/script/generate_bearer_token b/script/generate_bearer_token index 7091a8d..3a09382 100755 --- a/script/generate_bearer_token +++ b/script/generate_bearer_token @@ -55,8 +55,8 @@ if options[:projectroot].nil? then puts "You didn't tell us the directory to have your secrets-file created or being filled. Feel free to copy/paste your bearer_token:" puts $bearer_token else - if File.exist?("#{options[:projectroot]}/leap_web/config/secrets.yml") - secrets = YAML.load_file("#{options[:projectroot]}/leap_web/config/secrets.yml") + if File.exist?("#{options[:projectroot]}/config/secrets.yml") + secrets = YAML.load_file("#{options[:projectroot]}/config/secrets.yml") else puts "Please make sure that you created a secrets-file as described in the documentation or have given the correct directory. No secrets-file could be found." exit @@ -73,10 +73,12 @@ else else secrets["development"]["twitter"]["twitter_handle"] = options[:twitterhandle] secrets["test"]["twitter"]["twitter_handle"] = options[:twitterhandle] + secrets["production"]["twitter"]["twitter_handle"] = options[:twitterhandle] end secrets["development"]["twitter"]["bearer_token"] = $bearer_token secrets["test"]["twitter"]["bearer_token"] = $bearer_token + secrets["production"]["twitter"]["twitter_handle"] = $bearer_token File.open("#{options[:projectroot]}/leap_web/config/secrets.yml", "r+") do |file| file.write(secrets.to_yaml) |