From 6e061ab8946621897284a65a40b8288ae8faf26a Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Mon, 3 Dec 2018 15:10:36 +0100 Subject: [PATCH] Implemented issue #2023 - Twitter Account Activity API support. --- .gitlab-ci.yml | 13 - Gemfile | 2 +- Gemfile.lock | 35 +- .../app/controllers/_channel/twitter.coffee | 6 +- .../app/views/twitter/account_edit.jst.eco | 2 +- .../app/views/twitter/app_config.jst.eco | 24 + .../app/views/twitter/list.jst.eco | 9 + .../channels_twitter_controller.rb | 63 +- .../external_credentials_controller.rb | 5 +- app/models/channel.rb | 3 +- app/models/channel/driver/twitter.rb | 264 +- .../communicate_twitter/background_job.rb | 47 +- config/routes/channel_twitter.rb | 13 +- lib/external_credential/facebook.rb | 28 +- lib/external_credential/twitter.rb | 162 +- lib/http/uri.rb | 6 - lib/sessions/event.rb | 6 +- lib/tweet_base.rb | 463 -- lib/tweet_rest.rb | 24 - lib/tweet_stream.rb | 29 - lib/twitter_sync.rb | 969 +++ spec/lib/core_ext/string_spec.rb | 2 +- spec/models/channel/driver/twitter_spec.rb | 394 + spec/requests/external_credential_spec.rb | 130 +- .../integration/twitter_webhook_spec.rb | 282 + spec/support/vcr.rb | 10 +- .../data/twitter/webhook1_direct_message.json | 65 + test/data/twitter/webhook1_tweet.json | 162 + .../data/twitter/webhook2_direct_message.json | 113 + test/data/twitter/webhook2_tweet.json | 110 + .../data/twitter/webhook3_direct_message.json | 57 + .../driver/twitter/article_to_tweet.yml | 87 + .../article_to_tweet_channel_replace.yml | 87 + .../driver/twitter/fetch_channel_invalid.yml | 51 + .../driver/twitter/fetch_channel_valid.yml | 6566 +++++++++++++++++ .../facebook/app_verify_facebook.yml | 58 + ...erify_invalid_credentials_with_created.yml | 58 + ...y_invalid_credentials_with_not_created.yml | 58 + .../facebook/callback_invalid_credentials.yml | 56 + .../link_account_with_invalid_credential.yml | 58 + ...erify_invalid_credentials_with_created.yml | 76 + ...y_invalid_credentials_with_not_created.yml | 76 + .../twitter/app_verify_twitter.yml | 76 + .../link_account_with_invalid_credential.yml | 76 + test/integration/twitter_browser_test.rb | 383 +- test/integration/twitter_test.rb | 904 --- test/unit/ticket_article_twitter_test.rb | 194 - 47 files changed, 10025 insertions(+), 2337 deletions(-) delete mode 100644 lib/http/uri.rb delete mode 100644 lib/tweet_base.rb delete mode 100644 lib/tweet_rest.rb delete mode 100644 lib/tweet_stream.rb create mode 100644 lib/twitter_sync.rb create mode 100644 spec/models/channel/driver/twitter_spec.rb create mode 100644 spec/requests/integration/twitter_webhook_spec.rb create mode 100644 test/data/twitter/webhook1_direct_message.json create mode 100644 test/data/twitter/webhook1_tweet.json create mode 100644 test/data/twitter/webhook2_direct_message.json create mode 100644 test/data/twitter/webhook2_tweet.json create mode 100644 test/data/twitter/webhook3_direct_message.json create mode 100644 test/data/vcr_cassettes/models/channel/driver/twitter/article_to_tweet.yml create mode 100644 test/data/vcr_cassettes/models/channel/driver/twitter/article_to_tweet_channel_replace.yml create mode 100644 test/data/vcr_cassettes/models/channel/driver/twitter/fetch_channel_invalid.yml create mode 100644 test/data/vcr_cassettes/models/channel/driver/twitter/fetch_channel_valid.yml create mode 100644 test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_facebook.yml create mode 100644 test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_invalid_credentials_with_created.yml create mode 100644 test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_invalid_credentials_with_not_created.yml create mode 100644 test/data/vcr_cassettes/request/external_credentials/facebook/callback_invalid_credentials.yml create mode 100644 test/data/vcr_cassettes/request/external_credentials/facebook/link_account_with_invalid_credential.yml create mode 100644 test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_invalid_credentials_with_created.yml create mode 100644 test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_invalid_credentials_with_not_created.yml create mode 100644 test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_twitter.yml create mode 100644 test/data/vcr_cassettes/request/external_credentials/twitter/link_account_with_invalid_credential.yml delete mode 100644 test/integration/twitter_test.rb delete mode 100644 test/unit/ticket_article_twitter_test.rb diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 30346b337..28dc58a49 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -126,19 +126,6 @@ test:integration:email_helper_deliver: - ruby -I test/ test/integration/email_keep_on_server_test.rb - rake db:drop -test:integration:twitter: - <<: *artifacts_error - stage: test - variables: - RAILS_ENV: "test" - tags: - - core-twitter - script: - - rake zammad:db:init - - ruby -I test/ test/integration/twitter_test.rb - - rake db:drop - allow_failure: true - test:integration:facebook: <<: *artifacts_error stage: test diff --git a/Gemfile b/Gemfile index 195c00c53..447dd2303 100644 --- a/Gemfile +++ b/Gemfile @@ -74,7 +74,7 @@ gem 'omniauth-weibo-oauth2' # channels gem 'koala' gem 'telegramAPI' -gem 'twitter' +gem 'twitter', git: 'https://github.com/sferik/twitter.git' # channels - email additions gem 'htmlentities' diff --git a/Gemfile.lock b/Gemfile.lock index 563e2eaf4..c7ff844a4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,19 @@ +GIT + remote: https://github.com/sferik/twitter.git + revision: 844818cad07ce490ccb9d8542ebb6b4fc7a61cb4 + specs: + twitter (6.2.0) + addressable (~> 2.3) + buftok (~> 0.2.0) + equalizer (~> 0.0.11) + http (~> 3.0) + http-form_data (~> 2.0) + http_parser.rb (~> 0.6.0) + memoizable (~> 0.4.0) + multipart-post (~> 2.0) + naught (~> 1.0) + simple_oauth (~> 0.3.0) + GIT remote: https://github.com/wimm/rubyntlm revision: 53969639b87b9e5d5fef560f19cf0d977259591c @@ -189,14 +205,14 @@ GEM hashdiff (0.3.7) hashie (3.5.6) htmlentities (4.3.4) - http (3.0.0) + http (3.3.0) addressable (~> 2.3) http-cookie (~> 1.0) - http-form_data (>= 2.0.0.pre.pre2, < 3) + http-form_data (~> 2.0) http_parser.rb (~> 0.6.0) http-cookie (1.0.3) domain_name (~> 0.5) - http-form_data (2.0.0) + http-form_data (2.1.1) http_parser.rb (0.6.0) httpclient (2.8.3) i18n (1.1.1) @@ -453,17 +469,6 @@ GEM faraday (~> 0.9) jwt (>= 1.5, <= 2.5) nokogiri (>= 1.6, < 2.0) - twitter (6.2.0) - addressable (~> 2.3) - buftok (~> 0.2.0) - equalizer (~> 0.0.11) - http (~> 3.0) - http-form_data (~> 2.0) - http_parser.rb (~> 0.6.0) - memoizable (~> 0.4.0) - multipart-post (~> 2.0) - naught (~> 1.0) - simple_oauth (~> 0.3.0) tzinfo (1.2.5) thread_safe (~> 0.1) uglifier (3.2.0) @@ -584,7 +589,7 @@ DEPENDENCIES test-unit therubyracer twilio-ruby - twitter + twitter! uglifier unicorn valid_email2 diff --git a/app/assets/javascripts/app/controllers/_channel/twitter.coffee b/app/assets/javascripts/app/controllers/_channel/twitter.coffee index b4a95a770..7495e5d14 100644 --- a/app/assets/javascripts/app/controllers/_channel/twitter.coffee +++ b/app/assets/javascripts/app/controllers/_channel/twitter.coffee @@ -31,7 +31,8 @@ class Index extends App.ControllerSubContent render: (data) => # if no twitter app is registered, show intro - if !App.ExternalCredential.findByAttribute('name', 'twitter') + external_credential = App.ExternalCredential.findByAttribute('name', 'twitter') + if !external_credential @html App.view('twitter/index')() return @@ -60,6 +61,7 @@ class Index extends App.ControllerSubContent channels.push channel @html App.view('twitter/list')( channels: channels + external_credential: external_credential ) if @channel_id @@ -177,7 +179,7 @@ class AppConfig extends App.ControllerModal if data.attributes if !@external_credential @external_credential = new App.ExternalCredential - @external_credential.load(name: 'twitter', credentials: @formParams()) + @external_credential.load(name: 'twitter', credentials: data.attributes) @external_credential.save( done: => @isChanged = true diff --git a/app/assets/javascripts/app/views/twitter/account_edit.jst.eco b/app/assets/javascripts/app/views/twitter/account_edit.jst.eco index 52f85b0e1..51080d93a 100644 --- a/app/assets/javascripts/app/views/twitter/account_edit.jst.eco +++ b/app/assets/javascripts/app/views/twitter/account_edit.jst.eco @@ -34,5 +34,5 @@

<%- @T('Retweets') %>

<%- @T('Choose if retweets should also be converted to tickets.') %>

checked<% end %>> <%- @T('Track retweets') %> - + \ No newline at end of file diff --git a/app/assets/javascripts/app/views/twitter/app_config.jst.eco b/app/assets/javascripts/app/views/twitter/app_config.jst.eco index 92f322b9c..ef09d86c6 100644 --- a/app/assets/javascripts/app/views/twitter/app_config.jst.eco +++ b/app/assets/javascripts/app/views/twitter/app_config.jst.eco @@ -20,6 +20,30 @@ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+

<%- @T('Your callback URL') %>

diff --git a/app/assets/javascripts/app/views/twitter/list.jst.eco b/app/assets/javascripts/app/views/twitter/list.jst.eco index 7e16c75b2..a92aeba95 100644 --- a/app/assets/javascripts/app/views/twitter/list.jst.eco +++ b/app/assets/javascripts/app/views/twitter/list.jst.eco @@ -9,12 +9,21 @@
+<% if @external_credential && @external_credential.credentials && !@external_credential.credentials.webhook_id: %> + +<% end %> +
<% for channel in @channels: %>

<%- @Icon('status', 'supergood-color inline') %> <%= channel.options.user.name %> @<%= channel.options.user.screen_name %>

+ + <% if @external_credential && @external_credential.credentials && @external_credential.credentials.webhook_id && channel.options && channel.options.subscribed_to_webhook_id isnt @external_credential.credentials.webhook_id: %> + + <% end %> +

<%- @T('Search Terms') %>

diff --git a/app/controllers/channels_twitter_controller.rb b/app/controllers/channels_twitter_controller.rb index e93966704..a560745d3 100644 --- a/app/controllers/channels_twitter_controller.rb +++ b/app/controllers/channels_twitter_controller.rb @@ -1,12 +1,72 @@ # Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/ +require_dependency 'channel/driver/twitter' class ChannelsTwitterController < ApplicationController - prepend_before_action { authentication_check(permission: 'admin.channel_twitter') } + prepend_before_action -> { authentication_check(permission: 'admin.channel_twitter') }, except: %i[webhook_incoming webhook_verify] + skip_before_action :verify_csrf_token, only: %i[webhook_incoming webhook_verify] + + before_action :validate_webhook_signature!, only: :webhook_incoming + + def webhook_incoming + ::Channel::Driver::Twitter.new.process(params.permit!.to_h, @channel) + render json: {} + end + + def validate_webhook_signature! + header_name = 'x-twitter-webhooks-signature' + given_signature = request.headers[header_name] + raise Exceptions::UnprocessableEntity, "Missing '#{header_name}' header" if given_signature.blank? + + calculated_signature = hmac_signature_by_app(request.raw_post) + raise Exceptions::NotAuthorized if calculated_signature != given_signature + raise Exceptions::UnprocessableEntity, "Missing 'for_user_id' in payload!" if params[:for_user_id].blank? + + @channel = nil + Channel.where(area: 'Twitter::Account', active: true).each do |channel| + next if channel.options[:user].blank? + next if channel.options[:user][:id].to_s != params[:for_user_id].to_s + + @channel = channel + end + + raise Exceptions::UnprocessableEntity, "No such channel for user id '#{params[:for_user_id]}'!" if !@channel + + true + end + + def hmac_signature_by_app(content) + external_credential = ExternalCredential.find_by(name: 'twitter') + raise Exceptions::UnprocessableEntity, 'No such external_credential \'twitter\'!' if !external_credential + + hmac_signature_gen(external_credential.credentials[:consumer_secret], content) + end + + def hmac_signature_gen(consumer_secret, content) + hashed = OpenSSL::HMAC.digest('sha256', consumer_secret, content) + hashed = Base64.strict_encode64(hashed) + "sha256=#{hashed}" + end + + def webhook_verify + external_credential = Cache.get('external_credential_twitter') + if !external_credential && ExternalCredential.exists?(name: 'twitter') + external_credential = ExternalCredential.find_by(name: 'twitter').credentials + end + raise Exceptions::UnprocessableEntity, 'No external_credential in cache!' if external_credential.blank? + raise Exceptions::UnprocessableEntity, 'No external_credential[:consumer_secret] in cache!' if external_credential[:consumer_secret].blank? + raise Exceptions::UnprocessableEntity, 'No crc_token in verify payload from twitter!' if params['crc_token'].blank? + + render json: { + response_token: hmac_signature_gen(external_credential[:consumer_secret], params['crc_token']) + } + end def index assets = {} + external_credential_ids = [] ExternalCredential.where(name: 'twitter').each do |external_credential| assets = external_credential.assets(assets) + external_credential_ids.push external_credential.id end channel_ids = [] Channel.where(area: 'Twitter::Account').order(:id).each do |channel| @@ -16,6 +76,7 @@ class ChannelsTwitterController < ApplicationController render json: { assets: assets, channel_ids: channel_ids, + external_credential_ids: external_credential_ids, callback_url: ExternalCredential.callback_url('twitter'), } end diff --git a/app/controllers/external_credentials_controller.rb b/app/controllers/external_credentials_controller.rb index f8064f0b4..d7c7a9ad4 100644 --- a/app/controllers/external_credentials_controller.rb +++ b/app/controllers/external_credentials_controller.rb @@ -24,8 +24,7 @@ class ExternalCredentialsController < ApplicationController end def app_verify - attributes = ExternalCredential.app_verify(params) - render json: { attributes: attributes }, status: :ok + render json: { attributes: ExternalCredential.app_verify(params.permit!.to_h) }, status: :ok rescue => e render json: { error: e.message }, status: :ok end @@ -39,7 +38,7 @@ class ExternalCredentialsController < ApplicationController def callback provider = params[:provider].downcase - channel = ExternalCredential.link_account(provider, session[:request_token], params) + channel = ExternalCredential.link_account(provider, session[:request_token], params.permit!.to_h) session[:request_token] = nil redirect_to app_url(provider, channel.id) end diff --git a/app/models/channel.rb b/app/models/channel.rb index 6442d585c..45165932c 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -58,6 +58,7 @@ fetch one account self.last_log_in = result[:notice] preferences[:last_fetch] = Time.zone.now save! + return true rescue => e error = "Can't use Channel::Driver::#{adapter.to_classname}: #{e.inspect}" logger.error error @@ -66,8 +67,8 @@ fetch one account self.last_log_in = error preferences[:last_fetch] = Time.zone.now save! + return false end - end =begin diff --git a/app/models/channel/driver/twitter.rb b/app/models/channel/driver/twitter.rb index fa26525ec..ac6fbf5fd 100644 --- a/app/models/channel/driver/twitter.rb +++ b/app/models/channel/driver/twitter.rb @@ -1,5 +1,7 @@ # Copyright (C) 2012-2015 Zammad Foundation, http://zammad-foundation.org/ +require_dependency 'external_credential/twitter' + class Channel::Driver::Twitter =begin @@ -47,17 +49,15 @@ returns def fetch(options, channel) - options = check_external_credential(options) + options = self.class.check_external_credential(options) - @rest_client = TweetRest.new(options[:auth]) - @sync = options[:sync] - @channel = channel + @client = TwitterSync.new(options[:auth]) + @sync = options[:sync] + @channel = channel Rails.logger.debug { 'twitter fetch started' } - fetch_mentions fetch_search - fetch_direct_messages disconnect @@ -111,17 +111,16 @@ returns # return if we run import mode return if Setting.get('import_mode') - options = check_external_credential(options) + options = self.class.check_external_credential(options) - @rest_client = TweetRest.new(options[:auth]) - tweet = @rest_client.from_article(article) + @client = TwitterSync.new(options[:auth]) + tweet = @client.from_article(article) disconnect tweet end def disconnect - @stream_client&.disconnect - @rest_client&.disconnect + @client&.disconnect end =begin @@ -135,184 +134,29 @@ returns =end def self.streamable? - true + false end =begin -create stream endpoint form twitter account - - options = { - adapter: 'twitter', - auth: { - consumer_key: consumer_key, - consumer_secret: consumer_secret, - oauth_token: armin_theo_token, - oauth_token_secret: armin_theo_token_secret, - }, - sync: { - search: [ - { - term: '#citheo42', - group_id: 2, - }, - { - term: '#citheo24', - group_id: 1, - }, - ], - mentions: { - group_id: 2, - }, - direct_messages: { - group_id: 2, - } - } - } - - instance = Channel::Driver::Twitter.new - stream_instance = instance.stream_instance(channel) - -returns - - instance_of_stream_handle + Channel::Driver::Twitter.process(payload, channel) =end - def stream_instance(channel) - @channel = channel - options = @channel.options - @stream_client = TweetStream.new(options[:auth]) + def process(payload, channel) + @client = TwitterSync.new(channel.options[:auth], payload) + @client.process_webhook(channel) end -=begin - -stream tweets from twitter account - - instance.stream - -returns - - # endless loop - -=end - - def stream - sleep_on_unauthorized = 65 - 2.times do |loop_count| - begin - stream_start - rescue Twitter::Error::Unauthorized => e - Rails.logger.info "Unable to stream, try #{loop_count}, error #{e.inspect}" - if loop_count >= 2 - raise "Unable to stream, try #{loop_count}, error #{e.inspect}" - end - - Rails.logger.info "wait for #{sleep_on_unauthorized} sec. and try it again" - sleep sleep_on_unauthorized - end - end - end - - def stream_start - - sync = @channel.options['sync'] - raise 'Need channel.options[\'sync\'] for account, but no params found' if !sync - - filter = {} - if sync['search'] - hashtags = [] - sync['search'].each do |item| - next if item['term'].blank? - next if item['term'] == '#' - next if item['group_id'].blank? - - hashtags.push item['term'] - end - filter[:track] = hashtags.join(',') - end - if sync['mentions'] && sync['mentions']['group_id'] != '' - filter[:replies] = 'all' - end - - return if filter.blank? - - @stream_client.client.user(filter) do |tweet| - next if tweet.class != Twitter::Tweet && tweet.class != Twitter::DirectMessage - - # wait until own posts are stored in local database to prevent importing own tweets - next if @stream_client.locale_sender?(tweet) && own_tweet_already_imported?(tweet) - - next if Ticket::Article.find_by(message_id: tweet.id) - - # check direct message - if tweet.class == Twitter::DirectMessage - if sync['direct_messages'] && sync['direct_messages']['group_id'] != '' - next if @stream_client.direct_message_limit_reached(tweet, 2) - - @stream_client.to_group(tweet, sync['direct_messages']['group_id'], @channel) - end - next - end - - next if !track_retweets? && tweet.retweet? - next if @stream_client.tweet_limit_reached(tweet, 2) - - # check if it's mention - if sync['mentions'] && sync['mentions']['group_id'].present? - hit = false - tweet.user_mentions&.each do |user| - if user.id.to_s == @channel.options['user']['id'].to_s - hit = true - end - end - if hit - @stream_client.to_group(tweet, sync['mentions']['group_id'], @channel) - next - end - end - - # check hashtags - if sync['search'] && tweet.hashtags - hit = false - sync['search'].each do |item| - next if item['term'].blank? - next if item['term'] == '#' - next if item['group_id'].blank? - - tweet.hashtags.each do |hashtag| - next if item['term'] !~ /^#/ - - if item['term'].sub(/^#/, '') == hashtag.text - hit = item - end - end - end - if hit - @stream_client.to_group(tweet, hit['group_id'], @channel) - next - end - end - - # check stings - if sync['search'] - hit = false - body = tweet.text - sync['search'].each do |item| - next if item['term'].blank? - next if item['term'] == '#' - next if item['group_id'].blank? - - if body.match?(/#{item['term']}/) - hit = item - end - end - if hit - @stream_client.to_group(tweet, hit['group_id'], @channel) - end - end + def self.check_external_credential(options) + if options[:auth] && options[:auth][:external_credential_id] + external_credential = ExternalCredential.find_by(id: options[:auth][:external_credential_id]) + raise "No such ExternalCredential.find(#{options[:auth][:external_credential_id]})" if !external_credential + options[:auth][:consumer_key] = external_credential.credentials['consumer_key'] + options[:auth][:consumer_secret] = external_credential.credentials['consumer_secret'] end + options end private @@ -329,7 +173,7 @@ returns Rails.logger.debug { " - searching for '#{search[:term]}'" } older_import = 0 older_import_max = 20 - @rest_client.client.search(search[:term], result_type: result_type).collect do |tweet| + @client.client.search(search[:term], result_type: result_type).collect do |tweet| next if !track_retweets? && tweet.retweet? # ignore older messages @@ -339,71 +183,15 @@ returns next end - next if @rest_client.locale_sender?(tweet) && own_tweet_already_imported?(tweet) + next if @client.locale_sender?(tweet) && own_tweet_already_imported?(tweet) next if Ticket::Article.find_by(message_id: tweet.id) - break if @rest_client.tweet_limit_reached(tweet) + break if @client.tweet_limit_reached(tweet) - @rest_client.to_group(tweet, search[:group_id], @channel) + @client.to_group(tweet, search[:group_id], @channel) end end end - def fetch_mentions - return if @sync[:mentions].blank? - return if @sync[:mentions][:group_id].blank? - - Rails.logger.debug { ' - searching for mentions' } - older_import = 0 - older_import_max = 20 - @rest_client.client.mentions_timeline.each do |tweet| - next if !track_retweets? && tweet.retweet? - - # ignore older messages - if (@channel.created_at - 15.days) > tweet.created_at.dup.utc || older_import >= older_import_max - older_import += 1 - Rails.logger.debug { "tweet to old: #{tweet.id}/#{tweet.created_at}" } - next - end - next if Ticket::Article.find_by(message_id: tweet.id) - break if @rest_client.tweet_limit_reached(tweet) - - @rest_client.to_group(tweet, @sync[:mentions][:group_id], @channel) - end - end - - def fetch_direct_messages - return if @sync[:direct_messages].blank? - return if @sync[:direct_messages][:group_id].blank? - - Rails.logger.debug { ' - searching for direct_messages' } - older_import = 0 - older_import_max = 20 - @rest_client.client.direct_messages(full_text: 'true').each do |tweet| - - # ignore older messages - if (@channel.created_at - 15.days) > tweet.created_at.dup.utc || older_import >= older_import_max - older_import += 1 - Rails.logger.debug { "tweet to old: #{tweet.id}/#{tweet.created_at}" } - next - end - next if Ticket::Article.find_by(message_id: tweet.id) - break if @rest_client.direct_message_limit_reached(tweet) - - @rest_client.to_group(tweet, @sync[:direct_messages][:group_id], @channel) - end - end - - def check_external_credential(options) - if options[:auth] && options[:auth][:external_credential_id] - external_credential = ExternalCredential.find_by(id: options[:auth][:external_credential_id]) - raise "No such ExternalCredential.find(#{options[:auth][:external_credential_id]})" if !external_credential - - options[:auth][:consumer_key] = external_credential.credentials['consumer_key'] - options[:auth][:consumer_secret] = external_credential.credentials['consumer_secret'] - end - options - end - def track_retweets? @channel.options && @channel.options['sync'] && @channel.options['sync']['track_retweets'] end diff --git a/app/models/observer/ticket/article/communicate_twitter/background_job.rb b/app/models/observer/ticket/article/communicate_twitter/background_job.rb index 323dcfd1d..563e83f96 100644 --- a/app/models/observer/ticket/article/communicate_twitter/background_job.rb +++ b/app/models/observer/ticket/article/communicate_twitter/background_job.rb @@ -14,6 +14,21 @@ class Observer::Ticket::Article::CommunicateTwitter::BackgroundJob log_error(article, "Can't find ticket.preferences for Ticket.find(#{article.ticket_id})") if !ticket.preferences log_error(article, "Can't find ticket.preferences['channel_id'] for Ticket.find(#{article.ticket_id})") if !ticket.preferences['channel_id'] channel = Channel.lookup(id: ticket.preferences['channel_id']) + + # search for same channel channel_screen_name, in case the channel got re-added + if !channel + Channel.where(area: 'Twitter::Account', active: true).each do |local_channel| + next if ticket.preferences[:channel_screen_name].blank? + next if !local_channel.options + next if local_channel.options[:user].blank? + next if local_channel.options[:user][:screen_name].blank? + next if local_channel.options[:user][:screen_name] != ticket.preferences[:channel_screen_name] + + channel = local_channel + break + end + end + log_error(article, "No such channel id #{ticket.preferences['channel_id']}") if !channel log_error(article, "Channel.find(#{channel.id}) isn't a twitter channel!") if channel.options[:adapter] !~ /\Atwitter/i @@ -36,20 +51,24 @@ class Observer::Ticket::Article::CommunicateTwitter::BackgroundJob # fill article with tweet info # direct message - if tweet.class == Twitter::DirectMessage - article.from = "@#{tweet.sender.screen_name}" - article.to = "@#{tweet.recipient.screen_name}" + tweet_id = nil + if tweet.is_a?(Hash) + tweet_type = 'DirectMessage' + tweet_id = tweet[:event][:id].to_s + if tweet[:event] && tweet[:event][:type] == 'message_create' + #article.from = "@#{tweet.sender.screen_name}" + #article.to = "@#{tweet.recipient.screen_name}" - article.preferences['twitter'] = { - created_at: tweet.created_at, - recipient_id: tweet.recipient.id, - recipient_screen_name: tweet.recipient.screen_name, - sender_id: tweet.sender.id, - sender_screen_name: tweet.sender.screen_name, - } + article.preferences['twitter'] = { + recipient_id: tweet[:event][:message_create][:target][:recipient_id], + sender_id: tweet[:event][:message_create][:sender_id], + } + end # regular tweet elsif tweet.class == Twitter::Tweet + tweet_type = 'Tweet' + tweet_id = tweet.id.to_s article.from = "@#{tweet.user.screen_name}" if tweet.user_mentions to = '' @@ -62,7 +81,7 @@ class Observer::Ticket::Article::CommunicateTwitter::BackgroundJob mention_ids.push user.id end article.to = to - article.preferences['twitter'] = TweetBase.preferences_cleanup( + article.preferences['twitter'] = TwitterSync.preferences_cleanup( mention_ids: mention_ids, geo: tweet.geo, retweeted: tweet.retweeted?, @@ -85,10 +104,10 @@ class Observer::Ticket::Article::CommunicateTwitter::BackgroundJob article.preferences['delivery_status'] = 'success' article.preferences['delivery_status_date'] = Time.zone.now - article.message_id = tweet.id.to_s + article.message_id = tweet_id article.preferences['links'] = [ { - url: "https://twitter.com/statuses/#{tweet.id}", + url: "https://twitter.com/statuses/#{tweet_id}", target: '_blank', name: 'on Twitter', }, @@ -96,7 +115,7 @@ class Observer::Ticket::Article::CommunicateTwitter::BackgroundJob article.save! - Rails.logger.info "Send twitter (#{tweet.class}) to: '#{article.to}' (from #{article.from})" + Rails.logger.info "Send twitter (#{tweet_type}) to: '#{article.to}' (from #{article.from})" article end diff --git a/config/routes/channel_twitter.rb b/config/routes/channel_twitter.rb index 202ac157a..797fa5885 100644 --- a/config/routes/channel_twitter.rb +++ b/config/routes/channel_twitter.rb @@ -1,9 +1,12 @@ Zammad::Application.routes.draw do api_path = Rails.configuration.api_path - match api_path + '/channels_twitter', to: 'channels_twitter#index', via: :get - match api_path + '/channels_twitter/:id', to: 'channels_twitter#update', via: :post - match api_path + '/channels_twitter_disable', to: 'channels_twitter#disable', via: :post - match api_path + '/channels_twitter_enable', to: 'channels_twitter#enable', via: :post - match api_path + '/channels_twitter', to: 'channels_twitter#destroy', via: :delete + match api_path + '/channels_twitter', to: 'channels_twitter#index', via: :get + match api_path + '/channels_twitter/:id', to: 'channels_twitter#update', via: :post + match api_path + '/channels_twitter_disable', to: 'channels_twitter#disable', via: :post + match api_path + '/channels_twitter_enable', to: 'channels_twitter#enable', via: :post + match api_path + '/channels_twitter', to: 'channels_twitter#destroy', via: :delete + match api_path + '/channels_twitter_webhook', to: 'channels_twitter#webhook_verify', via: :get + match api_path + '/channels_twitter_webhook', to: 'channels_twitter#webhook_incoming', via: :post + end diff --git a/lib/external_credential/facebook.rb b/lib/external_credential/facebook.rb index ab18fe34d..5779ad0ec 100644 --- a/lib/external_credential/facebook.rb +++ b/lib/external_credential/facebook.rb @@ -1,20 +1,26 @@ class ExternalCredential::Facebook def self.app_verify(params) - request_account_to_link(params) + request_account_to_link(params, false) params end - def self.request_account_to_link(credentials = {}) + def self.request_account_to_link(credentials = {}, app_required = true) external_credential = ExternalCredential.find_by(name: 'facebook') - raise Exceptions::UnprocessableEntity, 'No facebook app configured!' if !external_credential + raise Exceptions::UnprocessableEntity, 'No facebook app configured!' if !external_credential && app_required - if !credentials[:application_id] - credentials[:application_id] = external_credential.credentials['application_id'] - end - if !credentials[:application_secret] - credentials[:application_secret] = external_credential.credentials['application_secret'] + if external_credential + if credentials[:application_id].blank? + credentials[:application_id] = external_credential.credentials['application_id'] + end + if credentials[:application_secret].blank? + credentials[:application_secret] = external_credential.credentials['application_secret'] + end end + + raise Exceptions::UnprocessableEntity, 'No application_id param!' if credentials[:application_id].blank? + raise Exceptions::UnprocessableEntity, 'No application_secret param!' if credentials[:application_secret].blank? + oauth = Koala::Facebook::OAuth.new( credentials[:application_id], credentials[:application_secret], @@ -32,7 +38,7 @@ class ExternalCredential::Facebook def self.link_account(_request_token, params) # fail if request_token.params[:oauth_token] != params[:state] external_credential = ExternalCredential.find_by(name: 'facebook') - raise 'No such account' if !external_credential + raise Exceptions::UnprocessableEntity, 'No facebook app configured!' if !external_credential oauth = Koala::Facebook::OAuth.new( external_credential.credentials['application_id'], @@ -63,12 +69,12 @@ class ExternalCredential::Facebook channel.options['auth']['access_token'] = access_token channel.options['pages'] = pages - channel.save + channel.save! return channel end # create channel - Channel.create( + Channel.create!( area: 'Facebook::Account', options: { adapter: 'facebook', diff --git a/lib/external_credential/twitter.rb b/lib/external_credential/twitter.rb index adb792c33..b6840f4cf 100644 --- a/lib/external_credential/twitter.rb +++ b/lib/external_credential/twitter.rb @@ -1,27 +1,41 @@ class ExternalCredential::Twitter def self.app_verify(params) - request_account_to_link(params) - params + register_webhook(params) end - def self.request_account_to_link(credentials = {}) + def self.request_account_to_link(credentials = {}, app_required = true) external_credential = ExternalCredential.find_by(name: 'twitter') - raise Exceptions::UnprocessableEntity, 'No twitter app configured!' if !external_credential + raise Exceptions::UnprocessableEntity, 'No twitter app configured!' if !external_credential && app_required - if !credentials[:consumer_key] - credentials[:consumer_key] = external_credential.credentials['consumer_key'] - end - if !credentials[:consumer_secret] - credentials[:consumer_secret] = external_credential.credentials['consumer_secret'] + if external_credential + if credentials[:consumer_key].blank? + credentials[:consumer_key] = external_credential.credentials['consumer_key'] + end + if credentials[:consumer_secret].blank? + credentials[:consumer_secret] = external_credential.credentials['consumer_secret'] + end end + + raise Exceptions::UnprocessableEntity, 'No consumer_key param!' if credentials[:consumer_key].blank? + raise Exceptions::UnprocessableEntity, 'No consumer_secret param!' if credentials[:consumer_secret].blank? + consumer = OAuth::Consumer.new( credentials[:consumer_key], credentials[:consumer_secret], { site: 'https://api.twitter.com' } ) - request_token = consumer.get_request_token(oauth_callback: ExternalCredential.callback_url('twitter')) + begin + request_token = consumer.get_request_token(oauth_callback: ExternalCredential.callback_url('twitter')) + rescue => e + if e.message == '403 Forbidden' + raise "#{e.message}, maybe credentials wrong or callback_url for application wrong configured." + end + + raise e + end + { request_token: request_token, authorize_url: request_token.authorize_url, @@ -29,42 +43,56 @@ class ExternalCredential::Twitter end def self.link_account(request_token, params) - raise if request_token.params[:oauth_token] != params[:oauth_token] - external_credential = ExternalCredential.find_by(name: 'twitter') + raise Exceptions::UnprocessableEntity, 'No twitter app configured!' if !external_credential + raise Exceptions::UnprocessableEntity, 'No request_token for session found!' if !request_token + raise Exceptions::UnprocessableEntity, 'Invalid oauth_token given!' if request_token.params[:oauth_token] != params[:oauth_token] + access_token = request_token.get_access_token(oauth_verifier: params[:oauth_verifier]) - client = Twitter::REST::Client.new( + client = TwitterSync.new( consumer_key: external_credential.credentials[:consumer_key], consumer_secret: external_credential.credentials[:consumer_secret], access_token: access_token.token, access_token_secret: access_token.secret, ) - user = client.user + client_user = client.who_am_i + client_user_id = client_user.id # check if account already exists Channel.where(area: 'Twitter::Account').each do |channel| next if !channel.options next if !channel.options['user'] next if !channel.options['user']['id'] - next if channel.options['user']['id'] != user['id'] + next if channel.options['user']['id'] != client_user_id && channel.options['user']['screen_name'] != client_user.screen_name + + channel.options['user']['id'] = client_user_id + channel.options['user']['screen_name'] = client_user.screen_name + channel.options['user']['name'] = client_user.name # update access_token channel.options['auth']['external_credential_id'] = external_credential.id channel.options['auth']['oauth_token'] = access_token.token channel.options['auth']['oauth_token_secret'] = access_token.secret - channel.save + channel.save! + + subscribe_webhook( + channel: channel, + client: client, + external_credential: external_credential, + ) + return channel end # create channel - Channel.create( + channel = Channel.create!( area: 'Twitter::Account', options: { adapter: 'twitter', user: { - id: user.id, - screen_name: user.screen_name, - name: user.name, + id: client_user_id, + screen_name: client_user.screen_name, + name: client_user.name, }, auth: { external_credential_id: external_credential.id, @@ -84,6 +112,100 @@ class ExternalCredential::Twitter updated_by_id: 1, ) + subscribe_webhook( + channel: channel, + client: client, + external_credential: external_credential, + ) + + channel + end + + def self.webhook_url + "#{Setting.get('http_type')}://#{Setting.get('fqdn')}#{Rails.configuration.api_path}/channels_twitter_webhook" + end + + def self.register_webhook(params) + request_account_to_link(params, false) + + raise Exceptions::UnprocessableEntity, 'No consumer_key param!' if params[:consumer_key].blank? + raise Exceptions::UnprocessableEntity, 'No consumer_secret param!' if params[:consumer_secret].blank? + raise Exceptions::UnprocessableEntity, 'No oauth_token param!' if params[:oauth_token].blank? + raise Exceptions::UnprocessableEntity, 'No oauth_token_secret param!' if params[:oauth_token_secret].blank? + + return if params[:env].blank? + + env_name = params[:env] + + client = TwitterSync.new( + consumer_key: params[:consumer_key], + consumer_secret: params[:consumer_secret], + access_token: params[:oauth_token], + access_token_secret: params[:oauth_token_secret], + ) + + # needed for verify callback + Cache.write('external_credential_twitter', { + consumer_key: params[:consumer_key], + consumer_secret: params[:consumer_secret], + access_token: params[:oauth_token], + access_token_secret: params[:oauth_token_secret], + }) + + # verify if webhook is already registered + begin + webhooks = client.webhooks_by_env_name(env_name) + rescue => e + begin + webhooks = client.webhooks + raise "Unable to get list of webooks. You use the wrong 'Dev environment label', only #{webhooks.inspect} available." + rescue => e + raise "Unable to get list of webooks. Maybe you do not have an Twitter developer approval right now or you use the wrong 'Dev environment label': #{e.message}" + end + end + webhook_id = nil + webhook_valid = nil + webhooks.each do |webhook| + next if webhook[:url] != webhook_url + + webhook_id = webhook[:id] + webhook_valid = webhook[:valid] + end + + # if webhook is already registered + # - in case if webhook is invalid, just send a new verification request + # - in case if webhook is valid return + if webhook_id + if webhook_valid == false + client.webhook_request_verification(webhook_id, env_name, webhook_url) + end + params[:webhook_id] = webhook_id + return params + end + + # delete already registered webhooks + webhooks.each do |webhook| + client.webhook_delete(webhook[:id]) + end + + # register new webhook + response = client.webhook_register(env_name, webhook_url) + + params[:webhook_id] = response[:id] + params + end + + def self.subscribe_webhook(channel:, client:, external_credential:) + env_name = external_credential.credentials[:env] + webhook_id = external_credential.credentials[:webhook_id] + + Rails.logger.debug { "Starting Twitter subscription for webhook_id #{webhook_id} and Channel #{channel.id}" } + client.webhook_subscribe(env_name) + + channel.options['subscribed_to_webhook_id'] = webhook_id + channel.save! + + true end end diff --git a/lib/http/uri.rb b/lib/http/uri.rb deleted file mode 100644 index a2f8e3822..000000000 --- a/lib/http/uri.rb +++ /dev/null @@ -1,6 +0,0 @@ -# Monkey-patch HTTP::URI -class HTTP::URI - def port - 443 if https? - end -end diff --git a/lib/sessions/event.rb b/lib/sessions/event.rb index a875d331d..2fd420531 100644 --- a/lib/sessions/event.rb +++ b/lib/sessions/event.rb @@ -7,7 +7,8 @@ class Sessions::Event begin backend = load_adapter(adapter) rescue => e - Rails.logger.error e + Rails.logger.error e.inspect + Rails.logger.error e.backtrace return { event: 'error', data: { error: "No such event #{params[:event]}: #{e.inspect}", payload: params[:payload] } } end @@ -17,7 +18,8 @@ class Sessions::Event instance.destroy result rescue => e - Rails.logger.error e + Rails.logger.error e.inspect + Rails.logger.error e.backtrace return { event: 'error', data: { error: e.message, payload: params[:payload] } } end end diff --git a/lib/tweet_base.rb b/lib/tweet_base.rb deleted file mode 100644 index 98369b021..000000000 --- a/lib/tweet_base.rb +++ /dev/null @@ -1,463 +0,0 @@ -# Copyright (C) 2012-2015 Zammad Foundation, http://zammad-foundation.org/ - -require 'http/uri' - -class TweetBase - - attr_accessor :client - - def user(tweet) - - if tweet.class == Twitter::DirectMessage - Rails.logger.debug { "Twitter sender for dm (#{tweet.id}): found" } - Rails.logger.debug { tweet.sender.inspect } - tweet.sender - elsif tweet.class == Twitter::Tweet - Rails.logger.debug { "Twitter sender for tweet (#{tweet.id}): found" } - Rails.logger.debug { tweet.user.inspect } - tweet.user - else - raise "Unknown tweet type '#{tweet.class}'" - end - - end - - def to_user(tweet) - - Rails.logger.debug { 'Create user from tweet...' } - Rails.logger.debug { tweet.inspect } - - # do tweet_user lookup - tweet_user = user(tweet) - - auth = Authorization.find_by(uid: tweet_user.id, provider: 'twitter') - - # create or update user - user_data = { - image_source: tweet_user.profile_image_url.to_s, - } - if auth - user = User.find(auth.user_id) - map = { - note: 'description', - web: 'website', - address: 'location', - } - - # ignore if value is already set - map.each do |target, source| - next if user[target].present? - - new_value = tweet_user.send(source).to_s - next if new_value.blank? - - user_data[target] = new_value - end - user.update!(user_data) - else - user_data[:login] = tweet_user.screen_name - user_data[:firstname] = tweet_user.name - user_data[:web] = tweet_user.website.to_s - user_data[:note] = tweet_user.description - user_data[:address] = tweet_user.location - user_data[:active] = true - user_data[:role_ids] = Role.signup_role_ids - - user = User.create!(user_data) - end - - if user_data[:image_source] - avatar = Avatar.add( - object: 'User', - o_id: user.id, - url: user_data[:image_source], - source: 'twitter', - deletable: true, - updated_by_id: user.id, - created_by_id: user.id, - ) - - # update user link - if avatar && user.image != avatar.store_hash - user.image = avatar.store_hash - user.save - end - end - - # create or update authorization - auth_data = { - uid: tweet_user.id, - username: tweet_user.screen_name, - user_id: user.id, - provider: 'twitter' - } - if auth - auth.update!(auth_data) - else - Authorization.create!(auth_data) - end - - user - end - - def to_ticket(tweet, user, group_id, channel) - UserInfo.current_user_id = user.id - - Rails.logger.debug { 'Create ticket from tweet...' } - Rails.logger.debug { tweet.inspect } - Rails.logger.debug { user.inspect } - Rails.logger.debug { group_id.inspect } - - if tweet.class == Twitter::DirectMessage - ticket = Ticket.find_by( - create_article_type: Ticket::Article::Type.lookup(name: 'twitter direct-message'), - customer_id: user.id, - state: Ticket::State.where.not( - state_type_id: Ticket::StateType.where( - name: %w[closed merged removed], - ) - ) - ) - return ticket if ticket - end - - # prepare title - title = tweet.text - if title.length > 80 - title = "#{title[0, 80]}..." - end - - state = get_state(channel, tweet) - - Ticket.create!( - customer_id: user.id, - title: title, - group_id: group_id || Group.first.id, - state: state, - priority: Ticket::Priority.find_by(name: '2 normal'), - preferences: { - channel_id: channel.id, - channel_screen_name: channel.options['user']['screen_name'], - }, - ) - end - - def to_article(tweet, user, ticket, channel) - - Rails.logger.debug { 'Create article from tweet...' } - Rails.logger.debug { tweet.inspect } - Rails.logger.debug { user.inspect } - Rails.logger.debug { ticket.inspect } - - # import tweet - to = nil - from = nil - article_type = nil - in_reply_to = nil - twitter_preferences = {} - if tweet.class == Twitter::DirectMessage - article_type = 'twitter direct-message' - to = "@#{tweet.recipient.screen_name}" - from = "@#{tweet.sender.screen_name}" - twitter_preferences = { - created_at: tweet.created_at, - recipient_id: tweet.recipient.id, - recipient_screen_name: tweet.recipient.screen_name, - sender_id: tweet.sender.id, - sender_screen_name: tweet.sender.screen_name, - } - elsif tweet.class == Twitter::Tweet - article_type = 'twitter status' - from = "@#{tweet.user.screen_name}" - mention_ids = [] - tweet.user_mentions&.each do |local_user| - if !to - to = '' - else - to += ', ' - end - to += "@#{local_user.screen_name}" - mention_ids.push local_user.id - end - in_reply_to = tweet.in_reply_to_status_id - - twitter_preferences = { - mention_ids: mention_ids, - geo: tweet.geo, - retweeted: tweet.retweeted?, - possibly_sensitive: tweet.possibly_sensitive?, - in_reply_to_user_id: tweet.in_reply_to_user_id, - place: tweet.place, - retweet_count: tweet.retweet_count, - source: tweet.source, - favorited: tweet.favorited?, - truncated: tweet.truncated?, - } - - else - raise "Unknown tweet type '#{tweet.class}'" - end - - UserInfo.current_user_id = user.id - - # set ticket state to open if not new - ticket_state = get_state(channel, tweet, ticket) - if ticket_state.name != ticket.state.name - ticket.state = ticket_state - ticket.save! - end - - article_preferences = { - twitter: self.class.preferences_cleanup(twitter_preferences), - links: [ - { - url: "https://twitter.com/statuses/#{tweet.id}", - target: '_blank', - name: 'on Twitter', - }, - ], - } - - Ticket::Article.create!( - from: from, - to: to, - body: tweet.text, - message_id: tweet.id, - ticket_id: ticket.id, - in_reply_to: in_reply_to, - type_id: Ticket::Article::Type.find_by(name: article_type).id, - sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id, - internal: false, - preferences: article_preferences, - ) - end - - def to_group(tweet, group_id, channel) - - Rails.logger.debug { 'import tweet' } - - # use transaction - if @connection_type == 'stream' - ActiveRecord::Base.connection.reconnect! - end - - ticket = nil - Transaction.execute(reset_user_id: true) do - - # check if parent exists - user = to_user(tweet) - if tweet.class == Twitter::DirectMessage - ticket = to_ticket(tweet, user, group_id, channel) - to_article(tweet, user, ticket, channel) - elsif tweet.class == Twitter::Tweet - if tweet.in_reply_to_status_id && tweet.in_reply_to_status_id.to_s != '' - existing_article = Ticket::Article.find_by(message_id: tweet.in_reply_to_status_id) - if existing_article - ticket = existing_article.ticket - else - begin - # in case of streaming mode, get parent tweet via REST client - if @connection_type == 'stream' - client = TweetRest.new(@auth) - parent_tweet = client.status(tweet.in_reply_to_status_id) - else - parent_tweet = @client.status(tweet.in_reply_to_status_id) - end - ticket = to_group(parent_tweet, group_id, channel) - rescue Twitter::Error::NotFound, Twitter::Error::Forbidden => e - # just ignore if tweet has already gone - Rails.logger.info "Can't import tweet (#{tweet.in_reply_to_status_id}), #{e.message}" - end - end - end - if !ticket - ticket = to_ticket(tweet, user, group_id, channel) - end - to_article(tweet, user, ticket, channel) - else - raise "Unknown tweet type '#{tweet.class}'" - end - end - - if @connection_type == 'stream' - ActiveRecord::Base.connection.close - end - ticket - end - - def from_article(article) - - tweet = nil - if article[:type] == 'twitter direct-message' - - Rails.logger.debug { "Create twitter direct message from article to '#{article[:to]}'..." } - - tweet = @client.create_direct_message( - article[:to], - article[:body], - {} - ) - elsif article[:type] == 'twitter status' - - Rails.logger.debug { 'Create tweet from article...' } - - tweet = @client.update( - article[:body], - { - in_reply_to_status_id: article[:in_reply_to] - } - ) - else - raise "Can't handle unknown twitter article type '#{article[:type]}'." - end - - Rails.logger.debug { tweet.inspect } - tweet - end - - def get_state(channel, tweet, ticket = nil) - - tweet_user = user(tweet) - - # no changes in post is from page user it self - if channel.options[:user][:id].to_s == tweet_user.id.to_s - if !ticket - return Ticket::State.find_by(name: 'closed') if !ticket - end - return ticket.state - end - - state = Ticket::State.find_by(default_create: true) - return state if !ticket - return ticket.state if ticket.state_id == state.id - - Ticket::State.find_by(default_follow_up: true) - end - - def tweet_limit_reached(tweet, factor = 1) - max_count = 120 - if @connection_type == 'stream' - max_count = 30 - end - max_count = max_count * factor - type_id = Ticket::Article::Type.lookup(name: 'twitter status').id - created_at = Time.zone.now - 15.minutes - created_count = Ticket::Article.where('created_at > ? AND type_id = ?', created_at, type_id).count - if created_count > max_count - Rails.logger.info "Tweet limit of #{created_count}/#{max_count} reached, ignored tweed id (#{tweet.id})" - return true - end - false - end - - def direct_message_limit_reached(tweet, factor = 1) - max_count = 100 - if @connection_type == 'stream' - max_count = 40 - end - max_count = max_count * factor - type_id = Ticket::Article::Type.lookup(name: 'twitter direct-message').id - created_at = Time.zone.now - 15.minutes - created_count = Ticket::Article.where('created_at > ? AND type_id = ?', created_at, type_id).count - if created_count > max_count - Rails.logger.info "Tweet direct message limit reached #{created_count}/#{max_count}, ignored tweed id (#{tweet.id})" - return true - end - false - end - -=begin - - replace Twitter::Place and Twitter::Geo as hash and replace Twitter::NullObject with nil - - preferences = TweetBase.preferences_cleanup( - twitter: twitter_preferences, - links: [ - { - url: 'https://twitter.com/statuses/123', - target: '_blank', - name: 'on Twitter', - }, - ], - ) - -or - - preferences = { - twitter: TweetBase.preferences_cleanup(twitter_preferences), - links: [ - { - url: 'https://twitter.com/statuses/123', - target: '_blank', - name: 'on Twitter', - }, - ], - } - -=end - - def self.preferences_cleanup(preferences) - - # replace Twitter::NullObject with nill to prevent elasticsearch index issue - preferences.each do |key, value| - - if value.class == Twitter::Place || value.class == Twitter::Geo - preferences[key] = value.to_h - next - end - if value.class == Twitter::NullObject - preferences[key] = nil - next - end - - next if !value.is_a?(Hash) - - value.each do |sub_key, sub_level| - if sub_level.class == NilClass - value[sub_key] = nil - next - end - if sub_level.class == Twitter::Place || sub_level.class == Twitter::Geo - value[sub_key] = sub_level.to_h - next - end - next if sub_level.class != Twitter::NullObject - - value[sub_key] = nil - end - end - - if preferences[:twitter] - if preferences[:twitter][:geo].blank? - preferences[:twitter][:geo] = {} - end - if preferences[:twitter][:place].blank? - preferences[:twitter][:place] = {} - end - else - if preferences[:geo].blank? - preferences[:geo] = {} - end - if preferences[:place].blank? - preferences[:place] = {} - end - end - - preferences - end - - def locale_sender?(tweet) - tweet_user = user(tweet) - Channel.where(area: 'Twitter::Account').each do |local_channel| - next if !local_channel.options - next if !local_channel.options[:user] - next if !local_channel.options[:user][:id] - next if local_channel.options[:user][:id].to_s != tweet_user.id.to_s - - Rails.logger.debug { "Tweet is sent by local account with user id #{tweet_user.id} and tweet.id #{tweet.id}" } - return true - end - false - end - -end diff --git a/lib/tweet_rest.rb b/lib/tweet_rest.rb deleted file mode 100644 index f7ced80d9..000000000 --- a/lib/tweet_rest.rb +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (C) 2012-2015 Zammad Foundation, http://zammad-foundation.org/ - -class TweetRest < TweetBase - - attr_accessor :client - - def initialize(auth) - @connection_type = 'rest' - @client = Twitter::REST::Client.new do |config| - config.consumer_key = auth[:consumer_key] - config.consumer_secret = auth[:consumer_secret] - config.access_token = auth[:oauth_token] - config.access_token_secret = auth[:oauth_token_secret] - end - - end - - def disconnect - return if !@client - - @client = nil - end - -end diff --git a/lib/tweet_stream.rb b/lib/tweet_stream.rb deleted file mode 100644 index eb8222703..000000000 --- a/lib/tweet_stream.rb +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (C) 2012-2015 Zammad Foundation, http://zammad-foundation.org/ - -class TweetStream < TweetBase - - attr_accessor :client - - def initialize(auth) - @connection_type = 'stream' - @auth = auth - @client = Twitter::Streaming::ClientCustom.new do |config| - config.consumer_key = auth[:consumer_key] - config.consumer_secret = auth[:consumer_secret] - config.access_token = auth[:oauth_token] - config.access_token_secret = auth[:oauth_token_secret] - end - - end - - def disconnect - if @client&.custom_connection_handle - @client.custom_connection_handle.close - end - - return if !@client - - @client = nil - end - -end diff --git a/lib/twitter_sync.rb b/lib/twitter_sync.rb new file mode 100644 index 000000000..82781d531 --- /dev/null +++ b/lib/twitter_sync.rb @@ -0,0 +1,969 @@ +# Copyright (C) 2012-2015 Zammad Foundation, http://zammad-foundation.org/ + +require 'http/uri' + +class TwitterSync + + attr_accessor :client + + def initialize(auth, payload = nil) + @client = Twitter::REST::Client.new do |config| + config.consumer_key = auth[:consumer_key] + config.consumer_secret = auth[:consumer_secret] + config.access_token = auth[:oauth_token] || auth[:access_token] + config.access_token_secret = auth[:oauth_token_secret] || auth[:access_token_secret] + end + @payload = payload + end + + def disconnect + return if !@client + + @client = nil + end + + def user(tweet) + raise "Unknown tweet type '#{tweet.class}'" if tweet.class != Twitter::Tweet + + Rails.logger.debug { "Twitter sender for tweet (#{tweet.id}): found" } + Rails.logger.debug { tweet.user.inspect } + tweet.user + end + + def to_user(tweet) + + Rails.logger.debug { 'Create user from tweet...' } + Rails.logger.debug { tweet.inspect } + + # do tweet_user lookup + tweet_user = user(tweet) + + auth = Authorization.find_by(uid: tweet_user.id, provider: 'twitter') + + # create or update user + user_data = { + image_source: tweet_user.profile_image_url.to_s, + } + if auth + user = User.find(auth.user_id) + map = { + note: 'description', + web: 'website', + address: 'location', + } + + # ignore if value is already set + map.each do |target, source| + next if user[target].present? + + new_value = tweet_user.send(source).to_s + next if new_value.blank? + + user_data[target] = new_value + end + user.update!(user_data) + else + user_data[:login] = tweet_user.screen_name + user_data[:firstname] = tweet_user.name + user_data[:web] = tweet_user.website.to_s + user_data[:note] = tweet_user.description + user_data[:address] = tweet_user.location + user_data[:active] = true + user_data[:role_ids] = Role.signup_role_ids + + user = User.create!(user_data) + end + + if user_data[:image_source] + avatar = Avatar.add( + object: 'User', + o_id: user.id, + url: user_data[:image_source], + source: 'twitter', + deletable: true, + updated_by_id: user.id, + created_by_id: user.id, + ) + + # update user link + if avatar && user.image != avatar.store_hash + user.image = avatar.store_hash + user.save + end + end + + # create or update authorization + auth_data = { + uid: tweet_user.id, + username: tweet_user.screen_name, + user_id: user.id, + provider: 'twitter' + } + if auth + auth.update!(auth_data) + else + Authorization.create!(auth_data) + end + + user + end + + def to_ticket(tweet, user, group_id, channel) + UserInfo.current_user_id = user.id + + Rails.logger.debug { 'Create ticket from tweet...' } + Rails.logger.debug { tweet.inspect } + Rails.logger.debug { user.inspect } + Rails.logger.debug { group_id.inspect } + + # normalize message + message = {} + + if tweet.class == Twitter::Tweet + message = { + type: 'tweet', + text: tweet.text, + } + state = get_state(channel, tweet) + end + + if tweet.is_a?(Hash) && tweet['type'] == 'message_create' + message = { + type: 'direct_message', + text: tweet['message_create']['message_data']['text'], + } + state = get_state(channel, tweet) + end + + if tweet.is_a?(Hash) && tweet['text'].present? + message = { + type: 'tweet', + text: tweet['text'], + } + state = get_state(channel, tweet) + end + + # process message + if message[:type] == 'direct_message' + ticket = Ticket.find_by( + create_article_type: Ticket::Article::Type.lookup(name: 'twitter direct-message'), + customer_id: user.id, + state: Ticket::State.where.not( + state_type_id: Ticket::StateType.where( + name: %w[closed merged removed], + ) + ) + ) + return ticket if ticket + end + + # prepare title + title = message[:text] + if title.length > 80 + title = "#{title[0, 80]}..." + end + + Ticket.create!( + customer_id: user.id, + title: title, + group_id: group_id || Group.first.id, + state: state, + priority: Ticket::Priority.find_by(default_create: true), + preferences: { + channel_id: channel.id, + channel_screen_name: channel.options['user']['screen_name'], + }, + ) + end + + def to_article_webhook(item, user, ticket, channel) + + Rails.logger.debug { 'Create article from tweet...' } + Rails.logger.debug { item.inspect } + Rails.logger.debug { user.inspect } + Rails.logger.debug { ticket.inspect } + + # import tweet + to = nil + from = nil + text = nil + message_id = nil + article_type = nil + in_reply_to = nil + twitter_preferences = {} + attachments = [] + + if item['type'] == 'message_create' + message_id = item['id'] + text = item['message_create']['message_data']['text'] + if item['message_create']['message_data']['entities'] && item['message_create']['message_data']['entities']['urls'].present? + item['message_create']['message_data']['entities']['urls'].each do |local_url| + next if local_url['url'].blank? + + if local_url['expanded_url'].present? + text.gsub!(/#{Regexp.quote(local_url['url'])}/, local_url['expanded_url']) + elsif local_url['display_url'] + text.gsub!(/#{Regexp.quote(local_url['url'])}/, local_url['display_url']) + end + end + end + app = get_app_webhook(item['message_create']['source_app_id']) + article_type = 'twitter direct-message' + recipient_screen_name = to_user_webhook_data(item['message_create']['target']['recipient_id'])['screen_name'] + sender_screen_name = to_user_webhook_data(item['message_create']['sender_id'])['screen_name'] + to = "@#{recipient_screen_name}" + from = "@#{sender_screen_name}" + twitter_preferences = { + created_at: item['created_timestamp'], + recipient_id: item['message_create']['target']['recipient_id'], + recipient_screen_name: recipient_screen_name, + sender_id: item['message_create']['sender_id'], + sender_screen_name: sender_screen_name, + app_id: app['app_id'], + app_name: app['app_name'], + } + elsif item['text'].present? + message_id = item['id'] + text = item['text'] + if item['extended_tweet'] && item['extended_tweet']['full_text'].present? + text = item['extended_tweet']['full_text'] + end + article_type = 'twitter status' + sender_screen_name = item['user']['screen_name'] + from = "@#{sender_screen_name}" + mention_ids = [] + if item['entities'] + + item['entities']['user_mentions']&.each do |local_user| + if !to + to = '' + else + to += ', ' + end + to += "@#{local_user['screen_name']}" + mention_ids.push local_user['id'] + end + + item['entities']['media']&.each do |local_media| + + if local_media['url'].present? + if local_media['expanded_url'].present? + text.gsub!(/#{Regexp.quote(local_media['url'])}/, local_media['expanded_url']) + elsif local_media['display_url'] + text.gsub!(/#{Regexp.quote(local_media['url'])}/, local_media['display_url']) + end + end + + url = local_media['media_url_https'] || local_media['media_url'] + next if url.blank? + + result = download_file(url) + if !result.success? || !result.body + Rails.logger.error "Unable for download image from twitter (#{url}): #{result.code}" + next + end + + attachment = { + filename: url.sub(%r{^.*/(.+?)$}, '\1'), + content: result.body, + + } + attachments.push attachment + end + end + + in_reply_to = item['in_reply_to_status_id'] + + twitter_preferences = { + mention_ids: mention_ids, + geo: item['geo'], + retweeted: item['retweeted'], + possibly_sensitive: item['possibly_sensitive'], + in_reply_to_user_id: item['in_reply_to_user_id'], + place: item['place'], + retweet_count: item['retweet_count'], + source: item['source'], + favorited: item['favorited'], + truncated: item['truncated'], + } + + else + raise "Unknown tweet type '#{item.class}'" + end + + UserInfo.current_user_id = user.id + + # set ticket state to open if not new + ticket_state = get_state(channel, item, ticket) + if ticket_state.name != ticket.state.name + ticket.state = ticket_state + ticket.save! + end + + article_preferences = { + twitter: self.class.preferences_cleanup(twitter_preferences), + links: [ + { + url: "https://twitter.com/statuses/#{item['id']}", + target: '_blank', + name: 'on Twitter', + }, + ], + } + + article = Ticket::Article.create!( + from: from, + to: to, + body: text, + message_id: message_id, + ticket_id: ticket.id, + in_reply_to: in_reply_to, + type_id: Ticket::Article::Type.find_by(name: article_type).id, + sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id, + internal: false, + preferences: self.class.preferences_cleanup(article_preferences), + ) + + attachments.each do |attachment| + Store.add( + object: 'Ticket::Article', + o_id: article.id, + data: attachment[:content], + filename: attachment[:filename], + preferences: {}, + ) + end + + end + + def to_article(tweet, user, ticket, channel) + + Rails.logger.debug { 'Create article from tweet...' } + Rails.logger.debug { tweet.inspect } + Rails.logger.debug { user.inspect } + Rails.logger.debug { ticket.inspect } + + # import tweet + to = nil + from = nil + article_type = nil + in_reply_to = nil + twitter_preferences = {} + raise "Unknown tweet type '#{tweet.class}'" if tweet.class != Twitter::Tweet + + article_type = 'twitter status' + from = "@#{tweet.user.screen_name}" + mention_ids = [] + tweet.user_mentions&.each do |local_user| + if !to + to = '' + else + to += ', ' + end + to += "@#{local_user.screen_name}" + mention_ids.push local_user.id + end + in_reply_to = tweet.in_reply_to_status_id + + twitter_preferences = { + mention_ids: mention_ids, + geo: tweet.geo, + retweeted: tweet.retweeted?, + possibly_sensitive: tweet.possibly_sensitive?, + in_reply_to_user_id: tweet.in_reply_to_user_id, + place: tweet.place, + retweet_count: tweet.retweet_count, + source: tweet.source, + favorited: tweet.favorited?, + truncated: tweet.truncated?, + } + + UserInfo.current_user_id = user.id + + # set ticket state to open if not new + ticket_state = get_state(channel, tweet, ticket) + if ticket_state.name != ticket.state.name + ticket.state = ticket_state + ticket.save! + end + + article_preferences = { + twitter: self.class.preferences_cleanup(twitter_preferences), + links: [ + { + url: "https://twitter.com/statuses/#{tweet.id}", + target: '_blank', + name: 'on Twitter', + }, + ], + } + + Ticket::Article.create!( + from: from, + to: to, + body: tweet.text, + message_id: tweet.id, + ticket_id: ticket.id, + in_reply_to: in_reply_to, + type_id: Ticket::Article::Type.find_by(name: article_type).id, + sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id, + internal: false, + preferences: self.class.preferences_cleanup(article_preferences), + ) + end + + def to_group(tweet, group_id, channel) + + Rails.logger.debug { 'import tweet' } + + ticket = nil + Transaction.execute(reset_user_id: true) do + + # check if parent exists + user = to_user(tweet) + raise "Unknown tweet type '#{tweet.class}'" if tweet.class != Twitter::Tweet + + if tweet.in_reply_to_status_id && tweet.in_reply_to_status_id.to_s != '' + existing_article = Ticket::Article.find_by(message_id: tweet.in_reply_to_status_id) + if existing_article + ticket = existing_article.ticket + else + begin + parent_tweet = @client.status(tweet.in_reply_to_status_id) + ticket = to_group(parent_tweet, group_id, channel) + rescue Twitter::Error::NotFound, Twitter::Error::Forbidden => e + # just ignore if tweet has already gone + Rails.logger.info "Can't import tweet (#{tweet.in_reply_to_status_id}), #{e.message}" + end + end + end + if !ticket + ticket = to_ticket(tweet, user, group_id, channel) + end + to_article(tweet, user, ticket, channel) + end + + ticket + end + +=begin + +create a tweet ot direct message from an article + +=end + + def from_article(article) + + tweet = nil + if article[:type] == 'twitter direct-message' + + Rails.logger.debug { "Create twitter direct message from article to '#{article[:to]}'..." } + + # tweet = @client.create_direct_message( + # article[:to], + # article[:body], + # {} + # ) + article[:to].delete!('@') + authorization = Authorization.find_by(provider: 'twitter', username: article[:to]) + raise "Unable to lookup user_id for @#{article[:to]}" if !authorization + + data = { + event: { + type: 'message_create', + message_create: { + target: { + recipient_id: authorization.uid, + }, + message_data: { + text: article[:body], + } + } + } + } + + tweet = Twitter::REST::Request.new(@client, :json_post, '/1.1/direct_messages/events/new.json', data).perform + + elsif article[:type] == 'twitter status' + + Rails.logger.debug { 'Create tweet from article...' } + + tweet = @client.update( + article[:body], + { + in_reply_to_status_id: article[:in_reply_to] + } + ) + else + raise "Can't handle unknown twitter article type '#{article[:type]}'." + end + + Rails.logger.debug { tweet.inspect } + tweet + end + + def get_state(channel, tweet, ticket = nil) + + user_id = nil + user_id = if tweet.is_a?(Hash) + if tweet['user'] && tweet['user']['id'] + tweet['user']['id'] + else + tweet['message_create']['sender_id'] + end + else + user(tweet).id + end + + # no changes in post is from page user it self + if channel.options[:user][:id].to_s == user_id.to_s + if !ticket + return Ticket::State.find_by(name: 'closed') if !ticket + end + return ticket.state + end + + state = Ticket::State.find_by(default_create: true) + return state if !ticket + return ticket.state if ticket.state_id == state.id + + Ticket::State.find_by(default_follow_up: true) + end + + def tweet_limit_reached(tweet, factor = 1) + max_count = 120 + max_count = max_count * factor + type_id = Ticket::Article::Type.lookup(name: 'twitter status').id + created_at = Time.zone.now - 15.minutes + created_count = Ticket::Article.where('created_at > ? AND type_id = ?', created_at, type_id).count + if created_count > max_count + Rails.logger.info "Tweet limit of #{created_count}/#{max_count} reached, ignored tweed id (#{tweet.id})" + return true + end + false + end + + def direct_message_limit_reached(tweet, factor = 1) + max_count = 100 + max_count = max_count * factor + type_id = Ticket::Article::Type.lookup(name: 'twitter direct-message').id + created_at = Time.zone.now - 15.minutes + created_count = Ticket::Article.where('created_at > ? AND type_id = ?', created_at, type_id).count + if created_count > max_count + Rails.logger.info "Tweet direct message limit reached #{created_count}/#{max_count}, ignored tweed id (#{tweet.id})" + return true + end + false + end + +=begin + + replace Twitter::Place and Twitter::Geo as hash and replace Twitter::NullObject with nil + + preferences = TwitterSync.preferences_cleanup( + twitter: twitter_preferences, + links: [ + { + url: 'https://twitter.com/statuses/123', + target: '_blank', + name: 'on Twitter', + }, + ], + ) + +or + + preferences = { + twitter: TwitterSync.preferences_cleanup(twitter_preferences), + links: [ + { + url: 'https://twitter.com/statuses/123', + target: '_blank', + name: 'on Twitter', + }, + ], + } + +=end + + def self.preferences_cleanup(preferences) + + # replace Twitter::NullObject with nill to prevent elasticsearch index issue + preferences.each do |key, value| + + if value.class == Twitter::Place || value.class == Twitter::Geo + preferences[key] = value.to_h + next + end + if value.class == Twitter::NullObject + preferences[key] = nil + next + end + + next if !value.is_a?(Hash) + + value.each do |sub_key, sub_level| + if sub_level.class == NilClass + value[sub_key] = nil + next + end + if sub_level.class == Twitter::Place || sub_level.class == Twitter::Geo + value[sub_key] = sub_level.to_h + next + end + next if sub_level.class != Twitter::NullObject + + value[sub_key] = nil + end + end + + if preferences[:twitter] + if preferences[:twitter][:geo].blank? + preferences[:twitter][:geo] = {} + end + if preferences[:twitter][:place].blank? + preferences[:twitter][:place] = {} + end + else + if preferences[:geo].blank? + preferences[:geo] = {} + end + if preferences[:place].blank? + preferences[:place] = {} + end + end + + preferences + end + +=begin + +check if tweet is from local sender + + client = TwitterSync.new + client.locale_sender?(tweet) + +=end + + def locale_sender?(tweet) + tweet_user = user(tweet) + Channel.where(area: 'Twitter::Account').each do |local_channel| + next if !local_channel.options + next if !local_channel.options[:user] + next if !local_channel.options[:user][:id] + next if local_channel.options[:user][:id].to_s != tweet_user.id.to_s + + Rails.logger.debug { "Tweet is sent by local account with user id #{tweet_user.id} and tweet.id #{tweet.id}" } + return true + end + false + end + +=begin + +process webhook messages from twitter + + client = TwitterSync.new + client.process_webhook(channel) + +=end + + def process_webhook(channel) + Rails.logger.debug { 'import tweet' } + ticket = nil + if @payload['direct_message_events'].present? && channel.options[:sync][:direct_messages][:group_id].present? + @payload['direct_message_events'].each do |item| + next if item['type'] != 'message_create' + + next if Ticket::Article.find_by(message_id: item['id']) + + user = to_user_webhook(item['message_create']['sender_id']) + ticket = to_ticket(item, user, channel.options[:sync][:direct_messages][:group_id], channel) + to_article_webhook(item, user, ticket, channel) + end + end + + if @payload['tweet_create_events'].present? + @payload['tweet_create_events'].each do |item| + next if Ticket::Article.find_by(message_id: item['id']) + + # check if it's mention + group_id = nil + if channel.options[:sync][:mentions][:group_id].present? && item['entities']['user_mentions'] + item['entities']['user_mentions'].each do |local_user| + next if channel.options[:user][:id].to_s != local_user['id'].to_s + + group_id = channel.options[:sync][:mentions][:group_id] + break + end + end + + # check if it's search term + if !group_id && channel.options[:sync][:search].present? + channel.options[:sync][:search].each do |local_search| + next if local_search[:term].blank? + next if local_search[:group_id].blank? + next if item['text'] !~ /#{Regexp.quote(local_search[:term])}/i + + group_id = local_search[:group_id] + break + end + end + + next if !group_id + + user = to_user_webhook(item['user']['id'], item['user']) + if item['in_reply_to_status_id'].present? + existing_article = Ticket::Article.find_by(message_id: item['in_reply_to_status_id']) + if existing_article + ticket = existing_article.ticket + else + begin + parent_tweet = @client.status(item['in_reply_to_status_id']) + ticket = to_group(parent_tweet, group_id, channel) + rescue Twitter::Error::NotFound, Twitter::Error::Forbidden => e + # just ignore if tweet has already gone + Rails.logger.info "Can't import tweet (#{item['in_reply_to_status_id']}), #{e.message}" + end + end + end + if !ticket + ticket = to_ticket(item, user, group_id, channel) + end + to_article_webhook(item, user, ticket, channel) + end + end + + ticket + end + + def get_app_webhook(app_id) + return {} if !@payload['apps'] + return {} if !@payload['apps'][app_id] + + @payload['apps'][app_id] + end + + def to_user_webhook_data(user_id) + if @payload['user'] && @payload['user']['id'].to_s == user_id.to_s + return @payload['user'] + end + raise 'no users in payload' if !@payload['users'] + raise 'no users in payload' if !@payload['users'][user_id] + + @payload['users'][user_id] + end + +=begin + +download public media file from twitter + + client = TwitterSync.new + result = client.download_file(url) + + result.body + +=end + + def download_file(url) + UserAgent.get( + url, + {}, + { + open_timeout: 20, + read_timeout: 40, + }, + ) + end + + def to_user_webhook(user_id, payload_user = nil) + user_payload = if payload_user && payload_user['id'].to_s == user_id.to_s + payload_user + else + to_user_webhook_data(user_id) + end + + auth = Authorization.find_by(uid: user_payload['id'], provider: 'twitter') + + # create or update user + user_data = { + image_source: user_payload['profile_image_url'], + } + if auth + user = User.find(auth.user_id) + map = { + note: 'description', + web: 'url', + address: 'location', + } + + # ignore if value is already set + map.each do |target, _source| + next if user[target].present? + + new_value = user_payload['source'].to_s + next if new_value.blank? + + user_data[target] = new_value + end + user.update!(user_data) + else + user_data[:login] = user_payload['screen_name'] + user_data[:firstname] = user_payload['name'] + user_data[:web] = user_payload['url'] + user_data[:note] = user_payload['description'] + user_data[:address] = user_payload['location'] + user_data[:active] = true + user_data[:role_ids] = Role.signup_role_ids + + user = User.create!(user_data) + end + + if user_data[:image_source].present? + avatar = Avatar.add( + object: 'User', + o_id: user.id, + url: user_data[:image_source], + source: 'twitter', + deletable: true, + updated_by_id: user.id, + created_by_id: user.id, + ) + + # update user link + if avatar && user.image != avatar.store_hash + user.image = avatar.store_hash + user.save + end + end + + # create or update authorization + auth_data = { + uid: user_payload['id'], + username: user_payload['screen_name'], + user_id: user.id, + provider: 'twitter' + } + if auth + auth.update!(auth_data) + else + Authorization.create!(auth_data) + end + + user + end + +=begin + +get the user of current twitter client + + client = TwitterSync.new + user_hash = client.who_am_i + +=end + + def who_am_i + @client.user + end + +=begin + +request a new webhook verification request from twitter + + client = TwitterSync.new + webhook_request_verification(webhook_id, env_name, webhook_url) + +=end + + def webhook_request_verification(webhook_id, env_name, webhook_url) + + Twitter::REST::Request.new(@client, :put, "/1.1/account_activity/all/#{env_name}/webhooks/#{webhook_id}.json", {}).perform + rescue => e + raise "Webhook registered but not valid (#{webhook_url}). Unable to set webhook to valid: #{e.message}" + + end + +=begin + +get webhooks by env_name + + client = TwitterSync.new + webhooks = webhooks_by_env_name(env_name) + +=end + + def webhooks_by_env_name(env_name) + Twitter::REST::Request.new(@client, :get, "/1.1/account_activity/all/#{env_name}/webhooks.json", {}).perform + end + +=begin + +get all webhooks + + client = TwitterSync.new + webhooks = webhooks(env_name) + +=end + + def webhooks + Twitter::REST::Request.new(@client, :get, '/1.1/account_activity/all/webhooks.json', {}).perform + end + +=begin + +delete a webhooks + + client = TwitterSync.new + webhook_delete(webhook_id) + +=end + + def webhook_delete(webhook_id) + Twitter::REST::Request.new(@client, :delete, "/1.1/account_activity/all/#{env_name}/webhooks/#{webhook_id}.json", {}).perform + end + +=begin + +register a new webhooks at twitter + + client = TwitterSync.new + webhook_register(env_name, webhook_url) + +=end + + def webhook_register(env_name, webhook_url) + options = { + url: webhook_url, + } + begin + response = Twitter::REST::Request.new(@client, :post, "/1.1/account_activity/all/#{env_name}/webhooks.json", options).perform + rescue => e + message = "Unable to register webhook: #{e.message}" + if %r{http://}.match?(webhook_url) + message += ' Only https webhooks possible to register.' + elsif webhooks.count.positive? + message += " Already #{webhooks.count} webhooks registered. Maybe you need to delete one first." + end + raise message + end + response + end + +=begin + +subscribe a user to a webhooks at twitter + + client = TwitterSync.new + webhook_subscribe(env_name) + +=end + + def webhook_subscribe(env_name) + + Twitter::REST::Request.new(@client, :post, "/1.1/account_activity/all/#{env_name}/subscriptions.json", {}).perform + rescue => e + raise "Unable to subscriptions with via webhook: #{e.message}" + + end + +end diff --git a/spec/lib/core_ext/string_spec.rb b/spec/lib/core_ext/string_spec.rb index 836a043d2..547642d04 100644 --- a/spec/lib/core_ext/string_spec.rb +++ b/spec/lib/core_ext/string_spec.rb @@ -93,7 +93,7 @@ RSpec.describe String do let(:input_encoding) { Encoding::ISO_8859_1 } it 'detects the input encoding' do - Timeout.timeout(9) do + Timeout.timeout(12) do expect(subject.utf8_encode(from: 'utf-8')).to eq(original_string) end end diff --git a/spec/models/channel/driver/twitter_spec.rb b/spec/models/channel/driver/twitter_spec.rb new file mode 100644 index 000000000..74f418f84 --- /dev/null +++ b/spec/models/channel/driver/twitter_spec.rb @@ -0,0 +1,394 @@ +require 'rails_helper' + +require_dependency 'channel/driver/twitter' + +RSpec.describe ::Channel::Driver::Twitter do + + let(:channel) do + create( + :channel, + area: 'Twitter::Account', + options: { + adapter: 'twitter', + auth: { + consumer_key: 'some', + consumer_secret: 'some', + oauth_token: 'key', + oauth_token_secret: 'secret', + }, + user: { + screen_name: 'system_login', + id: 'system_id', + }, + sync: { + track_retweets: true, + search: [ + { + term: 'zammad', + group_id: Group.first.id, + }, + { + term: 'hash_tag1', + group_id: Group.first.id, + }, + ], + mentions: { + group_id: Group.first.id, + }, + direct_messages: { + group_id: Group.first.id, + } + } + + }, + active: true, + created_by_id: 1, + updated_by_id: 1 + ) + end + + it 'fetch channel with invalid token' do + VCR.use_cassette('models/channel/driver/twitter/fetch_channel_invalid') do + expect(channel.fetch(true)).to be false + end + + channel.reload + expect(channel.status_in).to eq('error') + expect(channel.last_log_in).to eq('Can\'t use Channel::Driver::Twitter: #') + expect(channel.status_out).to be nil + expect(channel.last_log_out).to be nil + end + + it 'fetch channel with valid token' do + expect(Ticket.count).to eq(1) + VCR.use_cassette('models/channel/driver/twitter/fetch_channel_valid') do + expect(channel.fetch(true)).to be true + end + + expect(Ticket.count).to eq(27) + + ticket = Ticket.last + expect(ticket.title).to eq('Wir haben unsere DMs deaktiviert. Leider können wir dank der neuen Twitter API k...') + expect(ticket.preferences[:channel_id]).to eq(channel.id) + expect(ticket.preferences[:channel_screen_name]).to eq(channel.options[:user][:screen_name]) + expect(ticket.customer.firstname).to eq('Ccc') + expect(ticket.customer.lastname).to eq('Event Logistics') + + channel.reload + expect(channel.status_in).to eq('ok') + expect(channel.last_log_in).to eq('') + expect(channel.status_out).to be nil + expect(channel.last_log_out).to be nil + end + + it 'send tweet based on article - outbound' do + user = User.find(2) + text = 'Today the weather is really...' + ticket = Ticket.create!( + title: text[0, 40], + customer_id: user.id, + group_id: Group.first.id, + state: Ticket::State.find_by(name: 'new'), + priority: Ticket::Priority.find_by(name: '2 normal'), + preferences: { + channel_id: channel.id, + channel_screen_name: 'system_login', + }, + updated_by_id: 1, + created_by_id: 1, + ) + assert(ticket, "outbound ticket created, text: #{text}") + article = Ticket::Article.create!( + ticket_id: ticket.id, + body: text, + type: Ticket::Article::Type.find_by(name: 'twitter status'), + sender: Ticket::Article::Sender.find_by(name: 'Agent'), + internal: false, + updated_by_id: 1, + created_by_id: 1, + ) + + VCR.use_cassette('models/channel/driver/twitter/article_to_tweet') do + Scheduler.worker(true) + end + + ticket.reload + expect(ticket.state.name).to eq('open') + expect(ticket.group.name).to eq(Group.first.name) + expect(ticket.title).to eq('Today the weather is really...') + + article.reload + expect(article.from).to eq('@example') + expect(article.to).to eq('') + expect(article.cc).to be nil + expect(article.subject).to be nil + expect(article.sender.name).to eq('Agent') + expect(article.type.name).to eq('twitter status') + expect(article.message_id).to eq('1069382411899817990') + expect(article.content_type).to eq('text/plain') + expect(article.body).to eq('Today the weather is really...') + expect(article.preferences[:links][0][:url]).to eq('https://twitter.com/statuses/1069382411899817990') + expect(article.preferences[:links][0][:target]).to eq('_blank') + expect(article.preferences[:links][0][:name]).to eq('on Twitter') + + channel.reload + expect(channel.status_in).to be nil + expect(channel.last_log_in).to be nil + expect(channel.status_out).to eq('ok') + expect(channel.last_log_out).to eq('') + end + + it 'send tweet based on article - with replaced channel' do + user = User.find(2) + text = 'Today and tomorrow the weather is really...' + ticket = Ticket.create!( + title: text[0, 40], + customer_id: user.id, + group_id: Group.first.id, + state: Ticket::State.find_by(name: 'new'), + priority: Ticket::Priority.find_by(name: '2 normal'), + preferences: { + channel_id: 'some_other_id', + channel_screen_name: 'system_login', + }, + updated_by_id: 1, + created_by_id: 1, + ) + assert(ticket, "outbound ticket created, text: #{text}") + article = Ticket::Article.create!( + ticket_id: ticket.id, + body: text, + type: Ticket::Article::Type.find_by(name: 'twitter status'), + sender: Ticket::Article::Sender.find_by(name: 'Agent'), + internal: false, + updated_by_id: 1, + created_by_id: 1, + ) + + channel.reload + expect(channel.options[:user][:screen_name]).not_to be ticket.preferences[:channel_screen_name] + expect(channel.status_in).to be nil + expect(channel.last_log_in).to be nil + expect(channel.status_out).to be nil + expect(channel.last_log_out).to be nil + + VCR.use_cassette('models/channel/driver/twitter/article_to_tweet_channel_replace') do + Scheduler.worker(true) + end + + ticket.reload + expect(ticket.state.name).to eq('open') + expect(ticket.group.name).to eq(Group.first.name) + expect(ticket.title).to eq('Today and tomorrow the weather is really') + + article.reload + expect(article.from).to eq('@example') + expect(article.to).to eq('') + expect(article.cc).to be nil + expect(article.subject).to be nil + expect(article.sender.name).to eq('Agent') + expect(article.type.name).to eq('twitter status') + expect(article.message_id).to eq('1069382411899817991') + expect(article.content_type).to eq('text/plain') + expect(article.body).to eq('Today and tomorrow the weather is really...') + expect(article.preferences[:links][0][:url]).to eq('https://twitter.com/statuses/1069382411899817991') + expect(article.preferences[:links][0][:target]).to eq('_blank') + expect(article.preferences[:links][0][:name]).to eq('on Twitter') + + channel.reload + expect(channel.status_in).to be nil + expect(channel.last_log_in).to be nil + expect(channel.status_out).to eq('ok') + expect(channel.last_log_out).to eq('') + end + + it 'article preferences' do + + org_community = Organization.create_if_not_exists( + name: 'Zammad Foundation', + ) + user_community = User.create_or_update( + login: 'article.twitter@example.org', + firstname: 'Article', + lastname: 'Twitter', + email: 'article.twitter@example.org', + password: '', + active: true, + roles: [ Role.find_by(name: 'Customer') ], + organization_id: org_community.id, + updated_by_id: 1, + created_by_id: 1, + ) + + ticket1 = Ticket.create!( + group_id: Group.first.id, + customer_id: user_community.id, + title: 'Tweet 1!', + updated_by_id: 1, + created_by_id: 1, + ) + twitter_preferences = { + mention_ids: [1_234_567_890], + geo: Twitter::NullObject.new, + retweeted: false, + possibly_sensitive: false, + in_reply_to_user_id: 1_234_567_890, + place: Twitter::NullObject.new, + retweet_count: 0, + source: 'Tweetbot for Mac', + favorited: false, + truncated: false + } + preferences = { + twitter: TwitterSync.preferences_cleanup(twitter_preferences), + links: [ + { + url: 'https://twitter.com/statuses/123', + target: '_blank', + name: 'on Twitter', + }, + ], + } + article1 = Ticket::Article.create!( + ticket_id: ticket1.id, + type_id: Ticket::Article::Type.find_by(name: 'twitter status').id, + sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id, + from: '@example', + body: 'some tweet', + internal: false, + preferences: TwitterSync.preferences_cleanup(preferences), + updated_by_id: 1, + created_by_id: 1, + ) + expect(article1.preferences[:twitter]).to be_truthy + expect(article1.preferences[:twitter][:mention_ids][0]).to eq(1_234_567_890) + expect(article1.preferences[:twitter][:geo].class).to be ActiveSupport::HashWithIndifferentAccess + expect(article1.preferences[:twitter][:geo].blank?).to be true + expect(article1.preferences[:twitter][:place].class).to be ActiveSupport::HashWithIndifferentAccess + expect(article1.preferences[:twitter][:place].blank?).to be true + + twitter_preferences = { + mention_ids: [1_234_567_890], + geo: Twitter::NullObject.new, + retweeted: false, + possibly_sensitive: false, + in_reply_to_user_id: 1_234_567_890, + place: Twitter::NullObject.new, + retweet_count: 0, + source: 'Tweetbot for Mac', + favorited: false, + truncated: false + } + preferences = TwitterSync.preferences_cleanup( + twitter: twitter_preferences, + links: [ + { + url: 'https://twitter.com/statuses/123', + target: '_blank', + name: 'on Twitter', + }, + ], + ) + article2 = Ticket::Article.create!( + ticket_id: ticket1.id, + type_id: Ticket::Article::Type.find_by(name: 'twitter status').id, + sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id, + from: '@example', + body: 'some tweet', + internal: false, + preferences: TwitterSync.preferences_cleanup(preferences), + updated_by_id: 1, + created_by_id: 1, + ) + expect(article2.preferences[:twitter]).to be_truthy + expect(article2.preferences[:twitter][:mention_ids][0]).to eq(1_234_567_890) + expect(article1.preferences[:twitter][:geo].class).to be ActiveSupport::HashWithIndifferentAccess + expect(article1.preferences[:twitter][:geo].blank?).to be true + expect(article1.preferences[:twitter][:place].class).to be ActiveSupport::HashWithIndifferentAccess + expect(article1.preferences[:twitter][:place].blank?).to be true + + twitter_preferences = { + mention_ids: [1_234_567_890], + geo: Twitter::Geo.new(coordinates: [1, 1]), + retweeted: false, + possibly_sensitive: false, + in_reply_to_user_id: 1_234_567_890, + place: Twitter::Place.new(country: 'da', name: 'do', woeid: 1, id: 1), + retweet_count: 0, + source: 'Tweetbot for Mac', + favorited: false, + truncated: false + } + preferences = { + twitter: TwitterSync.preferences_cleanup(twitter_preferences), + links: [ + { + url: 'https://twitter.com/statuses/123', + target: '_blank', + name: 'on Twitter', + }, + ], + } + + article3 = Ticket::Article.create!( + ticket_id: ticket1.id, + type_id: Ticket::Article::Type.find_by(name: 'twitter status').id, + sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id, + from: '@example', + body: 'some tweet', + internal: false, + preferences: preferences, + updated_by_id: 1, + created_by_id: 1, + ) + + expect(article3.preferences[:twitter]).to be_truthy + expect(article3.preferences[:twitter][:mention_ids][0]).to eq(1_234_567_890) + expect(article3.preferences[:twitter][:geo].class).to be ActiveSupport::HashWithIndifferentAccess + expect(article3.preferences[:twitter][:geo]).to eq({ 'coordinates' => [1, 1] }) + expect(article3.preferences[:twitter][:place].class).to be ActiveSupport::HashWithIndifferentAccess + expect(article3.preferences[:twitter][:place]).to eq({ 'country' => 'da', 'name' => 'do', 'woeid' => 1, 'id' => 1 }) + + twitter_preferences = { + mention_ids: [1_234_567_890], + geo: Twitter::Geo.new(coordinates: [1, 1]), + retweeted: false, + possibly_sensitive: false, + in_reply_to_user_id: 1_234_567_890, + place: Twitter::Place.new(country: 'da', name: 'do', woeid: 1, id: 1), + retweet_count: 0, + source: 'Tweetbot for Mac', + favorited: false, + truncated: false + } + preferences = TwitterSync.preferences_cleanup( + twitter: twitter_preferences, + links: [ + { + url: 'https://twitter.com/statuses/123', + target: '_blank', + name: 'on Twitter', + }, + ], + ) + + article4 = Ticket::Article.create!( + ticket_id: ticket1.id, + type_id: Ticket::Article::Type.find_by(name: 'twitter status').id, + sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id, + from: '@example', + body: 'some tweet', + internal: false, + preferences: preferences, + updated_by_id: 1, + created_by_id: 1, + ) + expect(article4.preferences[:twitter]).to be_truthy + expect(article4.preferences[:twitter]).to be_truthy + expect(article4.preferences[:twitter][:mention_ids][0]).to eq(1_234_567_890) + expect(article4.preferences[:twitter][:geo].class).to be ActiveSupport::HashWithIndifferentAccess + expect(article4.preferences[:twitter][:geo]).to eq({ 'coordinates' => [1, 1] }) + expect(article4.preferences[:twitter][:place].class).to be ActiveSupport::HashWithIndifferentAccess + expect(article4.preferences[:twitter][:place]).to eq({ 'country' => 'da', 'name' => 'do', 'woeid' => 1, 'id' => 1 }) + end +end diff --git a/spec/requests/external_credential_spec.rb b/spec/requests/external_credential_spec.rb index afdd96ccb..6dc8064e8 100644 --- a/spec/requests/external_credential_spec.rb +++ b/spec/requests/external_credential_spec.rb @@ -51,60 +51,151 @@ RSpec.describe 'ExternalCredentials', type: :request do expect(json_response.count).to eq(0) end - it 'does external_credential app_verify with admin' do + it 'does external_credential app_verify with admin - facebook' do authenticated_as(admin_user) post '/api/v1/external_credentials/facebook/app_verify', as: :json expect(response).to have_http_status(200) expect(json_response).to be_a_kind_of(Hash) - expect(json_response['error']).to eq('No facebook app configured!') + expect(json_response['error']).to eq('No application_id param!') - create(:external_credential, name: 'facebook') + VCR.use_cassette('request/external_credentials/facebook/app_verify_invalid_credentials_with_not_created') do + post '/api/v1/external_credentials/facebook/app_verify', params: { application_id: 123, application_secret: 123 }, as: :json + end + expect(response).to have_http_status(200) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('type: OAuthException, code: 101, message: Error validating application. Cannot get application info due to a system error. [HTTP 400]') - post '/api/v1/external_credentials/facebook/app_verify', as: :json + create(:external_credential, { name: 'facebook', credentials: { application_id: 123, application_secret: 123 } }) + VCR.use_cassette('request/external_credentials/facebook/app_verify_invalid_credentials_with_created') do + post '/api/v1/external_credentials/facebook/app_verify', as: :json + end expect(response).to have_http_status(200) expect(json_response).to be_a_kind_of(Hash) expect(json_response['error']).to eq('type: OAuthException, code: 101, message: Error validating application. Cannot get application info due to a system error. [HTTP 400]') end - it 'does link_account app_verify with admin' do + it 'does external_credential app_verify with admin - twitter' do + authenticated_as(admin_user) + post '/api/v1/external_credentials/twitter/app_verify', as: :json + expect(response).to have_http_status(200) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('No consumer_key param!') + + VCR.use_cassette('request/external_credentials/twitter/app_verify_invalid_credentials_with_not_created') do + post '/api/v1/external_credentials/twitter/app_verify', params: { consumer_key: 123, consumer_secret: 123, oauth_token: 123, oauth_token_secret: 123 }, as: :json + end + expect(response).to have_http_status(200) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('401 Authorization Required') + + create(:external_credential, { name: 'twitter', credentials: { consumer_key: 123, consumer_secret: 123, oauth_token: 123, oauth_token_secret: 123 } }) + VCR.use_cassette('request/external_credentials/twitter/app_verify_invalid_credentials_with_created') do + post '/api/v1/external_credentials/twitter/app_verify', as: :json + end + expect(response).to have_http_status(200) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('401 Authorization Required') + end + + it 'does link_account app_verify with admin - facebook' do authenticated_as(admin_user) get '/api/v1/external_credentials/facebook/link_account', as: :json expect(response).to have_http_status(422) expect(json_response).to be_a_kind_of(Hash) expect(json_response['error']).to eq('No facebook app configured!') - create(:external_credential, name: 'facebook') + get '/api/v1/external_credentials/facebook/link_account', params: { application_id: 123, application_secret: 123 }, as: :json + expect(response).to have_http_status(422) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('No facebook app configured!') - get '/api/v1/external_credentials/facebook/link_account', as: :json + create(:external_credential, { name: 'facebook', credentials: { application_id: 123, application_secret: 123 } }) + + VCR.use_cassette('request/external_credentials/facebook/link_account_with_invalid_credential') do + get '/api/v1/external_credentials/facebook/link_account', as: :json + end expect(response).to have_http_status(500) expect(json_response).to be_a_kind_of(Hash) expect(json_response['error']).to eq('type: OAuthException, code: 101, message: Error validating application. Cannot get application info due to a system error. [HTTP 400]') end - it 'does external_credential callback with admin' do + it 'does link_account app_verify with admin - twitter' do authenticated_as(admin_user) - get '/api/v1/external_credentials/facebook/callback', as: :json + get '/api/v1/external_credentials/twitter/link_account', as: :json + expect(response).to have_http_status(422) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('No twitter app configured!') + + get '/api/v1/external_credentials/twitter/link_account', params: { consumer_key: 123, consumer_secret: 123, oauth_token: 123, oauth_token_secret: 123 }, as: :json + expect(response).to have_http_status(422) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('No twitter app configured!') + + create(:external_credential, { name: 'twitter', credentials: { consumer_key: 123, consumer_secret: 123, oauth_token: 123, oauth_token_secret: 123 } }) + VCR.use_cassette('request/external_credentials/twitter/link_account_with_invalid_credential') do + get '/api/v1/external_credentials/twitter/link_account', as: :json + end expect(response).to have_http_status(500) expect(json_response).to be_a_kind_of(Hash) - expect(json_response['error']).to eq('No such account') - - create(:external_credential, name: 'facebook') + expect(json_response['error']).to eq('401 Authorization Required') + end + it 'does external_credential callback with admin - facebook' do + authenticated_as(admin_user) get '/api/v1/external_credentials/facebook/callback', as: :json + expect(response).to have_http_status(422) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('No facebook app configured!') + + get '/api/v1/external_credentials/facebook/callback', params: { application_id: 123, application_secret: 123 }, as: :json + expect(response).to have_http_status(422) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('No facebook app configured!') + + create(:external_credential, { name: 'facebook', credentials: { application_id: 123, application_secret: 123 } }) + VCR.use_cassette('request/external_credentials/facebook/callback_invalid_credentials') do + get '/api/v1/external_credentials/facebook/callback', as: :json + end expect(response).to have_http_status(500) expect(json_response).to be_a_kind_of(Hash) expect(json_response['error']).to eq('type: OAuthException, code: 101, message: Error validating application. Cannot get application info due to a system error. [HTTP 400]') end + it 'does external_credential callback with admin - twitter' do + authenticated_as(admin_user) + get '/api/v1/external_credentials/twitter/callback', as: :json + expect(response).to have_http_status(422) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('No twitter app configured!') + + get '/api/v1/external_credentials/twitter/callback', params: { consumer_key: 123, consumer_secret: 123 }, as: :json + expect(response).to have_http_status(422) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('No twitter app configured!') + + create(:external_credential, { name: 'twitter', credentials: { consumer_key: 123, consumer_secret: 123 } }) + get '/api/v1/external_credentials/twitter/callback', as: :json + expect(response).to have_http_status(422) + expect(json_response).to be_a_kind_of(Hash) + expect(json_response['error']).to eq('No request_token for session found!') + + #request.session[:oauth_token] = 'some_token' + #get '/api/v1/external_credentials/twitter/callback', as: :json + #expect(response).to have_http_status(422) + #expect(json_response).to be_a_kind_of(Hash) + #expect(json_response['error']).to eq('Invalid oauth_token given!') + end + it 'does external_credential app_verify with admin and different permissions' do authenticated_as(admin_user) - create(:external_credential, name: 'twitter') - - post '/api/v1/external_credentials/twitter/app_verify', as: :json + create(:external_credential, { name: 'twitter', credentials: { consumer_key: 123, consumer_secret: 123 } }) + VCR.use_cassette('request/external_credentials/twitter/app_verify_twitter') do + post '/api/v1/external_credentials/twitter/app_verify', as: :json + end expect(response).to have_http_status(200) expect(json_response).to be_a_kind_of(Hash) - expect(json_response['error']).to eq('400 Bad Request') + expect(json_response['error']).to eq('401 Authorization Required') permission = Permission.find_by(name: 'admin.channel_twitter') permission.active = false @@ -115,9 +206,10 @@ RSpec.describe 'ExternalCredentials', type: :request do expect(json_response).to be_a_kind_of(Hash) expect(json_response['error']).to eq('Not authorized (user)!') - create(:external_credential, name: 'facebook') - - post '/api/v1/external_credentials/facebook/app_verify', as: :json + create(:external_credential, { name: 'facebook', credentials: { application_id: 123, application_secret: 123 } }) + VCR.use_cassette('request/external_credentials/facebook/app_verify_facebook') do + post '/api/v1/external_credentials/facebook/app_verify', as: :json + end expect(response).to have_http_status(200) expect(json_response).to be_a_kind_of(Hash) expect(json_response['error']).to eq('type: OAuthException, code: 101, message: Error validating application. Cannot get application info due to a system error. [HTTP 400]') diff --git a/spec/requests/integration/twitter_webhook_spec.rb b/spec/requests/integration/twitter_webhook_spec.rb new file mode 100644 index 000000000..783afd86c --- /dev/null +++ b/spec/requests/integration/twitter_webhook_spec.rb @@ -0,0 +1,282 @@ +require 'rails_helper' + +RSpec.describe 'Integration Twitter Webhook', type: :request do + + let(:agent_user) do + create(:agent_user) + end + + before(:each) do + @external_credential = ExternalCredential.create!( + name: 'twitter', + credentials: { + consumer_key: 'CCC', + consumer_secret: 'DDD', + } + ) + @channel = Channel.create!( + group_id: nil, + area: 'Twitter::Account', + options: { + adapter: 'twitter', + user: { + id: 123, + screen_name: 'zammadhq', + name: 'Zammad HQ', + }, + auth: { + external_credential_id: 1, + oauth_token: 'AAA', + oauth_token_secret: 'BBB', + consumer_key: 'CCC', + consumer_secret: 'DDD', + }, + sync: { + limit: 20, + search: [{ term: '#zammad', group_id: Group.first.id.to_s }, { term: '#hello1234', group_id: Group.first.id.to_s }], + mentions: { group_id: Group.first.id.to_s }, + direct_messages: { group_id: Group.first.id.to_s }, + track_retweets: false + } + }, + active: true, + updated_by_id: 1, + created_by_id: 1, + ) + end + + describe 'request verify' do + + it 'does at config check' do + Cache.write('external_credential_twitter', @external_credential.credentials) + @external_credential.destroy + params = { + crc_token: 'some_random', + nonce: 'some_nonce', + } + get '/api/v1/channels_twitter_webhook', params: params, headers: { 'x-twitter-webhooks-signature' => 'something' }, as: :json + expect(response).to have_http_status(200) + expect(json_response['response_token']).to eq('sha256=VE19eUk6krbdSqWPdvH71xtFhApBAU81uPW3UT65vOs=') + end + + it 'does configured check' do + Cache.delete('external_credential_twitter') + params = { + crc_token: 'some_random', + nonce: 'some_nonce', + } + get '/api/v1/channels_twitter_webhook', params: params, headers: { 'x-twitter-webhooks-signature' => 'something' }, as: :json + expect(response).to have_http_status(200) + expect(json_response['response_token']).to eq('sha256=VE19eUk6krbdSqWPdvH71xtFhApBAU81uPW3UT65vOs=') + end + + end + + describe 'request incoming - base' do + + it 'does without x-twitter-webhooks-signature header check' do + params = {} + post '/api/v1/channels_twitter_webhook', params: params, as: :json + expect(response).to have_http_status(422) + expect(json_response['error']).to eq('Missing \'x-twitter-webhooks-signature\' header') + end + + it 'does no external_credential check' do + @external_credential.destroy + params = {} + post '/api/v1/channels_twitter_webhook', params: params, headers: { 'x-twitter-webhooks-signature' => 'something' }, as: :json + expect(response).to have_http_status(422) + expect(json_response['error']).to eq('No such external_credential \'twitter\'!') + end + + it 'does invalid token check' do + params = {} + post '/api/v1/channels_twitter_webhook', params: params, headers: { 'x-twitter-webhooks-signature' => 'something' }, as: :json + expect(response).to have_http_status(401) + expect(json_response['error']).to eq('Not authorized') + end + + it 'does existing for_user_id check' do + params = { key: 'value' } + post '/api/v1/channels_twitter_webhook', params: params, headers: { 'x-twitter-webhooks-signature' => 'sha256=EERHBy/k17v+SuT+K0OXuwhJtKnPtxi0n/Y4Wye4kVU=' }, as: :json + expect(response).to have_http_status(422) + expect(json_response['error']).to eq('Missing \'for_user_id\' in payload!') + end + + it 'does invalid user check' do + params = { for_user_id: 'not_existing', key: 'value' } + post '/api/v1/channels_twitter_webhook', params: params, headers: { 'x-twitter-webhooks-signature' => 'sha256=QaJiQl/4WRp/GF37b+eAdF6kPgptjDCLOgAIIbB1s0I=' }, as: :json + expect(response).to have_http_status(422) + expect(json_response['error']).to eq('No such channel for user id \'not_existing\'!') + end + + it 'does valid token check' do + params = { for_user_id: 123, key: 'value' } + post '/api/v1/channels_twitter_webhook', params: params, headers: { 'x-twitter-webhooks-signature' => 'sha256=JjEmBe1lVKT8XldrYUKibF+D5ehp8f0jDk3PXZSHEWI=' }, as: :json + expect(response).to have_http_status(200) + end + end + + describe 'request incoming direct message' do + it 'create new ticket via tweet' do + post '/api/v1/channels_twitter_webhook', params: read_messaage('webhook1_direct_message'), headers: { 'x-twitter-webhooks-signature' => 'sha256=xXu7qrPhqXfo8Ot14c0si9HrdQdBNru5fkSdoMZi+Ms=' }, as: :json + + expect(response).to have_http_status(200) + article = Ticket::Article.find_by(message_id: '1062015437679050760') + expect(article).to be_present + expect(article.from).to eq('@zammadhq') + expect(article.to).to eq('@medenhofer') + expect(article.created_by.login).to eq('zammadhq') + expect(article.created_by.firstname).to eq('Zammad') + expect(article.created_by.lastname).to eq('Hq') + expect(article.attachments.count).to eq(0) + + ticket = article.ticket + expect(ticket.title).to eq('Hey! Hello!') + expect(ticket.state.name).to eq('closed') + expect(ticket.priority.name).to eq('2 normal') + expect(ticket.customer.login).to eq('zammadhq') + expect(ticket.customer.firstname).to eq('Zammad') + expect(ticket.customer.lastname).to eq('Hq') + expect(ticket.created_by.login).to eq('zammadhq') + expect(ticket.created_by.firstname).to eq('Zammad') + expect(ticket.created_by.lastname).to eq('Hq') + + post '/api/v1/channels_twitter_webhook', params: read_messaage('webhook2_direct_message'), headers: { 'x-twitter-webhooks-signature' => 'sha256=wYiCk7gfAgrnerCpj3XD58hozfVDjcQvcYPZCFH+stU=' }, as: :json + + article = Ticket::Article.find_by(message_id: '1063077238797725700') + expect(article).to be_present + expect(article.to).to eq('@zammadhq') + expect(article.from).to eq('@medenhofer') + expect(article.body).to eq("Hello Zammad #zammad @znuny\n\nYeah! https://twitter.com/messages/media/1063077238797725700") + expect(article.created_by.login).to eq('medenhofer') + expect(article.created_by.firstname).to eq('Martin') + expect(article.created_by.lastname).to eq('Edenhofer') + expect(article.attachments.count).to eq(0) + + ticket = article.ticket + expect(ticket.title).to eq('Hello Zammad #zammad @znuny Yeah! https://t.co/UfaCwi9cUb') + expect(ticket.state.name).to eq('new') + expect(ticket.priority.name).to eq('2 normal') + expect(ticket.customer.login).to eq('medenhofer') + expect(ticket.customer.firstname).to eq('Martin') + expect(ticket.customer.lastname).to eq('Edenhofer') + + post '/api/v1/channels_twitter_webhook', params: read_messaage('webhook3_direct_message'), headers: { 'x-twitter-webhooks-signature' => 'sha256=OTguUdchBdxNal/csZsRkytKL5srrUuezZ3hp/2E404=' }, as: :json + + article = Ticket::Article.find_by(message_id: '1063077238797725701') + expect(article).to be_present + expect(article.to).to eq('@zammadhq') + expect(article.from).to eq('@medenhofer') + expect(article.body).to eq('Hello again!') + expect(article.created_by.login).to eq('medenhofer') + expect(article.created_by.firstname).to eq('Martin') + expect(article.created_by.lastname).to eq('Edenhofer') + expect(article.ticket.id).to eq(ticket.id) + expect(article.attachments.count).to eq(0) + + ticket = article.ticket + expect(ticket.title).to eq('Hello Zammad #zammad @znuny Yeah! https://t.co/UfaCwi9cUb') + expect(ticket.state.name).to eq('new') + expect(ticket.priority.name).to eq('2 normal') + expect(ticket.customer.login).to eq('medenhofer') + expect(ticket.customer.firstname).to eq('Martin') + expect(ticket.customer.lastname).to eq('Edenhofer') + end + + it 'check duplicate' do + post '/api/v1/channels_twitter_webhook', params: read_messaage('webhook1_direct_message'), headers: { 'x-twitter-webhooks-signature' => 'sha256=xXu7qrPhqXfo8Ot14c0si9HrdQdBNru5fkSdoMZi+Ms=' }, as: :json + + expect(response).to have_http_status(200) + + post '/api/v1/channels_twitter_webhook', params: read_messaage('webhook1_direct_message'), headers: { 'x-twitter-webhooks-signature' => 'sha256=xXu7qrPhqXfo8Ot14c0si9HrdQdBNru5fkSdoMZi+Ms=' }, as: :json + + expect(response).to have_http_status(200) + + expect(Ticket::Article.where(message_id: '1062015437679050760').count).to eq(1) + end + end + + describe 'request incoming direct message' do + + it 'create new ticket via tweet' do + + stub_request(:get, 'http://pbs.twimg.com/profile_images/785412960797745152/wxdIvejo_bigger.jpg') + .to_return(status: 200, body: 'some_content') + + stub_request(:get, 'https://pbs.twimg.com/media/DsFKfJRWkAAFEbo.jpg') + .to_return(status: 200, body: 'some_content') + + post '/api/v1/channels_twitter_webhook', params: read_messaage('webhook1_tweet'), headers: { 'x-twitter-webhooks-signature' => 'sha256=DmARpz6wdgte6Vj+ePeqC+RHvEDokmwOIIqr4//utkk=' }, as: :json + + expect(response).to have_http_status(200) + article = Ticket::Article.find_by(message_id: '1063212927510081536') + expect(article).to be_present + expect(article.from).to eq('@zammadhq') + expect(article.to).to eq('@medenhofer') + expect(article.body).to eq('Hey @medenhofer ! #hello1234 https://twitter.com/zammadhq/status/1063212927510081536/photo/1') + expect(article.created_by.login).to eq('zammadhq') + expect(article.created_by.firstname).to eq('Zammad') + expect(article.created_by.lastname).to eq('Hq') + expect(article.attachments.count).to eq(1) + expect(article.attachments[0].filename).to eq('DsFKfJRWkAAFEbo.jpg') + + ticket = article.ticket + expect(ticket.title).to eq('Hey @medenhofer ! #hello1234 https://t.co/f1kffFlwpN') + expect(ticket.state.name).to eq('closed') + expect(ticket.priority.name).to eq('2 normal') + expect(ticket.customer.login).to eq('zammadhq') + expect(ticket.customer.firstname).to eq('Zammad') + expect(ticket.customer.lastname).to eq('Hq') + expect(ticket.created_by.login).to eq('zammadhq') + expect(ticket.created_by.firstname).to eq('Zammad') + expect(ticket.created_by.lastname).to eq('Hq') + end + + it 'create new ticket via tweet extended_tweet' do + + stub_request(:get, 'http://pbs.twimg.com/profile_images/794220000450150401/D-eFg44R_bigger.jpg') + .to_return(status: 200, body: 'some_content') + + post '/api/v1/channels_twitter_webhook', params: read_messaage('webhook2_tweet'), headers: { 'x-twitter-webhooks-signature' => 'sha256=U7bglX19JitI2xuvyONAc0d/fowIFEeUzkEgnWdGyUM=' }, as: :json + + expect(response).to have_http_status(200) + article = Ticket::Article.find_by(message_id: '1065035365336141825') + expect(article).to be_present + expect(article.from).to eq('@medenhofer') + expect(article.to).to eq('@znuny') + expect(article.body).to eq('@znuny Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lore') + expect(article.created_by.login).to eq('medenhofer') + expect(article.created_by.firstname).to eq('Martin') + expect(article.created_by.lastname).to eq('Edenhofer') + expect(article.attachments.count).to eq(0) + + ticket = article.ticket + expect(ticket.title).to eq('@znuny Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy ...') + expect(ticket.state.name).to eq('new') + expect(ticket.priority.name).to eq('2 normal') + expect(ticket.customer.login).to eq('medenhofer') + expect(ticket.customer.firstname).to eq('Martin') + expect(ticket.customer.lastname).to eq('Edenhofer') + expect(ticket.created_by.login).to eq('medenhofer') + expect(ticket.created_by.firstname).to eq('Martin') + expect(ticket.created_by.lastname).to eq('Edenhofer') + end + + it 'check duplicate' do + post '/api/v1/channels_twitter_webhook', params: read_messaage('webhook1_tweet'), headers: { 'x-twitter-webhooks-signature' => 'sha256=DmARpz6wdgte6Vj+ePeqC+RHvEDokmwOIIqr4//utkk=' }, as: :json + + expect(response).to have_http_status(200) + + post '/api/v1/channels_twitter_webhook', params: read_messaage('webhook1_tweet'), headers: { 'x-twitter-webhooks-signature' => 'sha256=DmARpz6wdgte6Vj+ePeqC+RHvEDokmwOIIqr4//utkk=' }, as: :json + + expect(response).to have_http_status(200) + + expect(Ticket::Article.where(message_id: '1063212927510081536').count).to eq(1) + end + end + + def read_messaage(file) + JSON.parse(File.read(Rails.root.join('test', 'data', 'twitter', "#{file}.json"))) + end +end diff --git a/spec/support/vcr.rb b/spec/support/vcr.rb index 45f0d341e..4010a35cd 100644 --- a/spec/support/vcr.rb +++ b/spec/support/vcr.rb @@ -1,5 +1,13 @@ VCR.configure do |config| config.cassette_library_dir = 'test/data/vcr_cassettes' config.hook_into :webmock - config.allow_http_connections_when_no_cassette = true + config.allow_http_connections_when_no_cassette = false + config.ignore_localhost = true + config.ignore_request do |request| + uri = URI(request.uri) + + ['zammad.com', 'google.com'].any? do |site| + uri.host.include?(site) + end + end end diff --git a/test/data/twitter/webhook1_direct_message.json b/test/data/twitter/webhook1_direct_message.json new file mode 100644 index 000000000..a05f62582 --- /dev/null +++ b/test/data/twitter/webhook1_direct_message.json @@ -0,0 +1,65 @@ +{ + "for_user_id": "123", + "direct_message_events": [ + { + "type": "message_create", + "id": "1062015437679050760", + "created_timestamp": "1542039186292", + "message_create": { + "target": { + "recipient_id": "456" + }, + "sender_id": "123", + "source_app_id": "268278", + "message_data": { + "text": "Hey! Hello!", + "entities": { + "hashtags": [], + "symbols": [], + "user_mentions": [], + "urls": [] + } + } + } + } + ], + "apps": { + "268278": { + "id": "268278", + "name": "Twitter Web Client", + "url": "http://twitter.com" + } + }, + "users": { + "123": { + "id": "123", + "created_timestamp": "1476091912921", + "name": "Zammad HQ", + "screen_name": "zammadhq", + "description": "Helpdesk and Customer Support made easy. Open Source for download or to go with SaaS. #zammad", + "url": "https://t.co/XITyrXmhTP", + "protected": false, + "verified": false, + "followers_count": 426, + "friends_count": 509, + "statuses_count": 436, + "profile_image_url": "http://pbs.twimg.com/profile_images/785412960797745152/wxdIvejo_normal.jpg", + "profile_image_url_https": "https://pbs.twimg.com/profile_images/785412960797745152/wxdIvejo_normal.jpg" + }, + "456": { + "id": "456", + "created_timestamp": "1290730789000", + "name": "Martin Edenhofer", + "screen_name": "medenhofer", + "description": "Open Source professional and geek. Also known as #OTRS and #Zammad inventor. ;)\r\nEntrepreneur and Advisor for open source people in need.", + "url": "https://t.co/whm4HTWdMw", + "protected": false, + "verified": false, + "followers_count": 312, + "friends_count": 314, + "statuses_count": 222, + "profile_image_url": "http://pbs.twimg.com/profile_images/794220000450150401/D-eFg44R_normal.jpg", + "profile_image_url_https": "https://pbs.twimg.com/profile_images/794220000450150401/D-eFg44R_normal.jpg" + } + } +} \ No newline at end of file diff --git a/test/data/twitter/webhook1_tweet.json b/test/data/twitter/webhook1_tweet.json new file mode 100644 index 000000000..75127b31a --- /dev/null +++ b/test/data/twitter/webhook1_tweet.json @@ -0,0 +1,162 @@ +{ + "for_user_id": "123", + "tweet_create_events": [ + { + "created_at": "Thu Nov 15 23:31:30 +0000 2018", + "id": 1063212927510081536, + "id_str": "1063212927510081536", + "text": "Hey @medenhofer ! #hello1234 https://t.co/f1kffFlwpN", + "display_text_range": [0, 29], + "source": "Twitter Web Client", + "truncated": false, + "in_reply_to_status_id": null, + "in_reply_to_status_id_str": null, + "in_reply_to_user_id": null, + "in_reply_to_user_id_str": null, + "in_reply_to_screen_name": null, + "user": { + "id": 123, + "id_str": "123", + "name": "Zammad HQ", + "screen_name": "zammadhq", + "location": null, + "url": "http://zammad.com", + "description": "Helpdesk and Customer Support made easy. Open Source for download or to go with SaaS. #zammad", + "translator_type": "none", + "protected": false, + "verified": false, + "followers_count": 427, + "friends_count": 512, + "listed_count": 20, + "favourites_count": 280, + "statuses_count": 438, + "created_at": "Mon Oct 10 09:31:52 +0000 2016", + "utc_offset": null, + "time_zone": null, + "geo_enabled": false, + "lang": "en", + "contributors_enabled": false, + "is_translator": false, + "profile_background_color": "000000", + "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", + "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", + "profile_background_tile": false, + "profile_link_color": "31B068", + "profile_sidebar_border_color": "000000", + "profile_sidebar_fill_color": "000000", + "profile_text_color": "000000", + "profile_use_background_image": false, + "profile_image_url": "http://pbs.twimg.com/profile_images/785412960797745152/wxdIvejo_normal.jpg", "profile_image_url_https": "https://pbs.twimg.com/profile_images/785412960797745152/wxdIvejo_normal.jpg", + "profile_banner_url": "https://pbs.twimg.com/profile_banners/123/1476097853", + "default_profile": false, + "default_profile_image": false, + "following": null, + "follow_request_sent": null, + "notifications": null + }, + "geo": null, + "coordinates": null, + "place": null, + "contributors": null, + "is_quote_status": false, + "quote_count": 0, + "reply_count": 0, + "retweet_count": 0, + "favorite_count": 0, + "entities": { + "hashtags": [ + {"text": "hello1234", "indices": [19, 29]} + ], + "urls": [], + "user_mentions": [ + { + "screen_name": "medenhofer", + "name": "Martin Edenhofer", + "id": 456, + "id_str": "456", + "indices": [4, 15] + } + ], + "symbols": [], + "media": [ + { + "id": 1063212885961248768, + "id_str": "1063212885961248768", + "indices": [30, 53], + "media_url": "http://pbs.twimg.com/media/DsFKfJRWkAAFEbo.jpg", + "media_url_https": "https://pbs.twimg.com/media/DsFKfJRWkAAFEbo.jpg", + "url": "https://t.co/f1kffFlwpN", + "display_url": "pic.twitter.com/f1kffFlwpN", + "expanded_url": "https://twitter.com/zammadhq/status/1063212927510081536/photo/1", + "type": "photo", + "sizes": { + "thumb": { + "w": 150, + "h": 150, + "resize": "crop" + }, + "large": { + "w": 852, + "h": 462, + "resize": "fit" + }, + "medium": { + "w": 852, + "h": 462, + "resize": "fit" + }, + "small": { + "w": 680, + "h": 369, + "resize": "fit" + } + } + } + ] + }, + "extended_entities": { + "media": [ + { + "id": 1063212885961248768, + "id_str": "1063212885961248768", + "indices": [30, 53], + "media_url": "http://pbs.twimg.com/media/DsFKfJRWkAAFEbo.jpg", + "media_url_https": "https://pbs.twimg.com/media/DsFKfJRWkAAFEbo.jpg", + "url": "https://t.co/f1kffFlwpN", + "display_url": "pic.twitter.com/f1kffFlwpN", + "expanded_url": "https://twitter.com/zammadhq/status/1063212927510081536/photo/1", + "type": "photo", + "sizes": { + "thumb": { + "w": 150, + "h": 150, + "resize": "crop" + }, + "large": { + "w": 852, + "h": 462, + "resize": "fit" + }, + "medium": { + "w": 852, + "h": 462, + "resize": "fit" + }, + "small": { + "w": 680, + "h": 369, + "resize": "fit" + } + } + } + ] + }, + "favorited": false, + "retweeted": false, + "possibly_sensitive": false, + "filter_level": "low", + "lang": "und", + "timestamp_ms": "1542324690116" + } + ] +} diff --git a/test/data/twitter/webhook2_direct_message.json b/test/data/twitter/webhook2_direct_message.json new file mode 100644 index 000000000..eedc679e9 --- /dev/null +++ b/test/data/twitter/webhook2_direct_message.json @@ -0,0 +1,113 @@ +{ + "for_user_id": "123", + "direct_message_events": [ + { + "type": "message_create", + "id": "1063077238797725700", + "created_timestamp": "1542292339406", + "message_create": { + "target": { + "recipient_id": "123" + }, + "sender_id": "456", + "message_data": { + "text": "Hello Zammad #zammad @znuny\n\nYeah! https://t.co/UfaCwi9cUb", + "entities": { + "hashtags": [ + { + "text": "zammad", + "indices": [13,20] + } + ], + "symbols": [], + "user_mentions": [ + { + "screen_name": "znuny", + "name": "Znuny / ES for OTRS", + "id": 789, + "id_str": "789", + "indices": [21, 27] + } + ], + "urls": [ + { + "url": "https://t.co/UfaCwi9cUb", + "expanded_url": "https://twitter.com/messages/media/1063077238797725700", + "display_url": "pic.twitter.com/UfaCwi9cUb", + "indices": [35, 58] + } + ] + }, + "attachment": { + "type": "media", + "media": { + "id": 1063077198536556545, + "id_str": "1063077198536556545", + "indices": [35, 58], + "media_url": "https://ton.twitter.com/1.1/ton/data/dm/1063077238797725700/1063077198536556545/9FZgsMdV.jpg", + "media_url_https": "https://ton.twitter.com/1.1/ton/data/dm/1063077238797725700/1063077198536556545/9FZgsMdV.jpg", + "url": "https://t.co/UfaCwi9cUb", + "display_url": "pic.twitter.com/UfaCwi9cUb", + "expanded_url": "https://twitter.com/messages/media/1063077238797725700", + "type": "photo", + "sizes": { + "thumb": { + "w": 150, + "h": 150, + "resize": "crop" + }, + "medium": { + "w": 1200, + "h": 313, + "resize": "fit" + }, + "small": { + "w": 680, + "h": 177, + "resize": "fit" + }, + "large": { + "w": 1472, + "h": 384, + "resize": "fit" + } + } + } + } + } + } + } + ], + "users": { + "456": { + "id": "456", + "created_timestamp": "1290730789000", + "name": "Martin Edenhofer", + "screen_name": "medenhofer", + "description": "Open Source professional and geek. Also known as #OTRS and #Zammad inventor. ;)\r\nEntrepreneur and Advisor for open source people in need.", + "url": "https://t.co/whm4HTWdMw", + "protected": false, + "verified": false, + "followers_count": 312, + "friends_count": 314, + "statuses_count": 222, + "profile_image_url": "http://pbs.twimg.com/profile_images/794220000450150401/D-eFg44R_normal.jpg", + "profile_image_url_https": "https://pbs.twimg.com/profile_images/794220000450150401/D-eFg44R_normal.jpg" + }, + "123": { + "id": "123", + "created_timestamp": "1476091912921", + "name": "Zammad HQ", + "screen_name": "zammadhq", + "description": "Helpdesk and Customer Support made easy. Open Source for download or to go with SaaS. #zammad", + "url": "https://t.co/XITyrXmhTP", + "protected": false, + "verified": false, + "followers_count": 427, + "friends_count": 512, + "statuses_count": 437, + "profile_image_url": "http://pbs.twimg.com/profile_images/785412960797745152/wxdIvejo_normal.jpg", + "profile_image_url_https": "https://pbs.twimg.com/profile_images/785412960797745152/wxdIvejo_normal.jpg" + } + } +} diff --git a/test/data/twitter/webhook2_tweet.json b/test/data/twitter/webhook2_tweet.json new file mode 100644 index 000000000..f85a5ffef --- /dev/null +++ b/test/data/twitter/webhook2_tweet.json @@ -0,0 +1,110 @@ +{ + "for_user_id": "123", + "tweet_create_events": [ + { + "created_at": "Wed Nov 21 00:13:13 +0000 2018", + "id": 1065035365336141825, + "id_str": "1065035365336141825", + "text": "@znuny Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et… https://t.co/b9woj0QXNZ", + "source": "Twitter Web Client", + "truncated": true, + "in_reply_to_status_id": null, + "in_reply_to_status_id_str": null, + "in_reply_to_user_id": 123, + "in_reply_to_user_id_str": "123", + "in_reply_to_screen_name": "znuny", + "user": { + "id": 219826253, + "id_str": "219826253", + "name": "Martin Edenhofer", + "screen_name": "medenhofer", + "location": null, + "url": "http://edenhofer.de/", + "description": "Open Source professional and geek. Also known as #OTRS and #Zammad inventor. ;)\r\nEntrepreneur and Advisor for open source people in need.", + "translator_type": "regular", + "protected": false, + "verified": false, + "followers_count": 310, + "friends_count": 314, + "listed_count": 16, + "favourites_count": 129, + "statuses_count": 225, + "created_at": "Fri Nov 26 00:19:49 +0000 2010", + "utc_offset": null, + "time_zone": null, + "geo_enabled": false, + "lang": "en", + "contributors_enabled": false, + "is_translator": false, + "profile_background_color": "C0DEED", + "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", + "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", + "profile_background_tile": true, "profile_link_color": "0084B4", "profile_sidebar_border_color": "FFFFFF", + "profile_sidebar_fill_color": "DDEEF6", + "profile_text_color": "333333", + "profile_use_background_image": true, + "profile_image_url": "http://pbs.twimg.com/profile_images/794220000450150401/D-eFg44R_normal.jpg", + "profile_image_url_https": "https://pbs.twimg.com/profile_images/794220000450150401/D-eFg44R_normal.jpg", + "profile_banner_url": "https://pbs.twimg.com/profile_banners/219826253/1349428277", + "default_profile": false, + "default_profile_image": false, + "following": null, + "follow_request_sent": null, + "notifications": null + }, + "geo": null, + "coordinates": null, + "place": null, + "contributors": null, + "is_quote_status": false, + "extended_tweet": { + "full_text": "@znuny Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lore", + "display_text_range": [0, 279], + "entities": { + "hashtags": [], + "urls": [], + "user_mentions": [ + { + "screen_name": "znuny", + "name": "Znuny / ES for OTRS", + "id": 123, + "id_str": "123", + "indices": [0, 6] + } + ], + "symbols": [] + } + }, + "quote_count": 0, + "reply_count": 0, + "retweet_count": 0, + "favorite_count": 0, + "entities": { + "hashtags": [], + "urls": [ + { + "url": "https://t.co/b9woj0QXNZ", + "expanded_url": "https://twitter.com/i/web/status/1065035365336141825", + "display_url": "twitter.com/i/web/status/1…", + "indices": [117, 140] + } + ], + "user_mentions": [ + { + "screen_name": "znuny", + "name": "Znuny / ES for OTRS", + "id": 123, + "id_str": "123", + "indices": [0, 6] + } + ], + "symbols": [] + }, + "favorited": false, + "retweeted": false, + "filter_level": "low", + "lang": "ro", + "timestamp_ms": "1542759193153" + } + ] +} \ No newline at end of file diff --git a/test/data/twitter/webhook3_direct_message.json b/test/data/twitter/webhook3_direct_message.json new file mode 100644 index 000000000..c441ac674 --- /dev/null +++ b/test/data/twitter/webhook3_direct_message.json @@ -0,0 +1,57 @@ +{ + "for_user_id": "123", + "direct_message_events": [ + { + "type": "message_create", + "id": "1063077238797725701", + "created_timestamp": "1542292339406", + "message_create": { + "target": { + "recipient_id": "123" + }, + "sender_id": "456", + "message_data": { + "text": "Hello again!", + "entities": { + "hashtags": [], + "symbols": [], + "user_mentions": [], + "urls": [] + } + } + } + } + ], + "users": { + "456": { + "id": "456", + "created_timestamp": "1290730789000", + "name": "Martin Edenhofer", + "screen_name": "medenhofer", + "description": "Open Source professional and geek. Also known as #OTRS and #Zammad inventor. ;)\r\nEntrepreneur and Advisor for open source people in need.", + "url": "https://t.co/whm4HTWdMw", + "protected": false, + "verified": false, + "followers_count": 312, + "friends_count": 314, + "statuses_count": 222, + "profile_image_url": "http://pbs.twimg.com/profile_images/794220000450150401/D-eFg44R_normal.jpg", + "profile_image_url_https": "https://pbs.twimg.com/profile_images/794220000450150401/D-eFg44R_normal.jpg" + }, + "123": { + "id": "123", + "created_timestamp": "1476091912921", + "name": "Zammad HQ", + "screen_name": "zammadhq", + "description": "Helpdesk and Customer Support made easy. Open Source for download or to go with SaaS. #zammad", + "url": "https://t.co/XITyrXmhTP", + "protected": false, + "verified": false, + "followers_count": 427, + "friends_count": 512, + "statuses_count": 437, + "profile_image_url": "http://pbs.twimg.com/profile_images/785412960797745152/wxdIvejo_normal.jpg", + "profile_image_url_https": "https://pbs.twimg.com/profile_images/785412960797745152/wxdIvejo_normal.jpg" + } + } +} diff --git a/test/data/vcr_cassettes/models/channel/driver/twitter/article_to_tweet.yml b/test/data/vcr_cassettes/models/channel/driver/twitter/article_to_tweet.yml new file mode 100644 index 000000000..c78783b1b --- /dev/null +++ b/test/data/vcr_cassettes/models/channel/driver/twitter/article_to_tweet.yml @@ -0,0 +1,87 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.twitter.com/1.1/statuses/update.json + body: + encoding: UTF-8 + string: in_reply_to_status_id&status=Today+the+weather+is+really... + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="some", + oauth_signature="some%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795610", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Content-Type: + - application/x-www-form-urlencoded + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2376' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:06:49 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:06:49 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379560980468557; Expires=Wed, 02 Dec 2020 00:06:49 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_I6QHv6WAcEJj8qqGADKl+Q=="; Expires=Wed, 02 Dec 2020 + 00:06:49 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - af3c2f4e24b6e6b940f913b84f710297 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Response-Time: + - '209' + X-Transaction: + - 00fb3d5400c70774 + X-Tsa-Request-Body-Time: + - '0' + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Mon Dec 03 00:06:49 +0000 2018","id":1069382411899817990,"id_str":"1069382411899817990","text":"Today + the weather is really...","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[]},"source":"\u003ca + href=\"https:\/\/edenhofer.de\" rel=\"nofollow\"\u003eMartin Edenhofer\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":219826253,"id_str":"219826253","name":"Martin + Edenhofer","screen_name":"example","location":"","description":"Open Source + professional and geek. Also known as #OTRS and #Zammad inventor. ;)\r\nEntrepreneur + and Advisor for open source people in need.","url":"https:\/\/t.co\/whm4HTWdMw","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/whm4HTWdMw","expanded_url":"http:\/\/edenhofer.de\/","display_url":"edenhofer.de","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":311,"friends_count":314,"listed_count":16,"created_at":"Fri + Nov 26 00:19:49 +0000 2010","favourites_count":129,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":227,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/794220000450150401\/D-eFg44R_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/794220000450150401\/D-eFg44R_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/219826253\/1349428277","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"regular"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"en"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:06:50 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/models/channel/driver/twitter/article_to_tweet_channel_replace.yml b/test/data/vcr_cassettes/models/channel/driver/twitter/article_to_tweet_channel_replace.yml new file mode 100644 index 000000000..0b2ad99ad --- /dev/null +++ b/test/data/vcr_cassettes/models/channel/driver/twitter/article_to_tweet_channel_replace.yml @@ -0,0 +1,87 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.twitter.com/1.1/statuses/update.json + body: + encoding: UTF-8 + string: in_reply_to_status_id&status=Today+and+tomorrow+the+weather+is+really... + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="some", + oauth_signature="some%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795610", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Content-Type: + - application/x-www-form-urlencoded + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2376' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:06:49 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:06:49 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379560980468557; Expires=Wed, 02 Dec 2020 00:06:49 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_I6QHv6WAcEJj8qqGADKl+Q=="; Expires=Wed, 02 Dec 2020 + 00:06:49 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - af3c2f4e24b6e6b940f913b84f710297 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Response-Time: + - '209' + X-Transaction: + - 00fb3d5400c70774 + X-Tsa-Request-Body-Time: + - '0' + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Mon Dec 03 00:06:49 +0000 2018","id":1069382411899817991,"id_str":"1069382411899817991","text":"Today and tomorrow + the weather is really...","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[]},"source":"\u003ca + href=\"https:\/\/edenhofer.de\" rel=\"nofollow\"\u003eMartin Edenhofer\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":219826253,"id_str":"219826253","name":"Martin + Edenhofer","screen_name":"example","location":"","description":"Open Source + professional and geek. Also known as #OTRS and #Zammad inventor. ;)\r\nEntrepreneur + and Advisor for open source people in need.","url":"https:\/\/t.co\/whm4HTWdMw","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/whm4HTWdMw","expanded_url":"http:\/\/edenhofer.de\/","display_url":"edenhofer.de","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":311,"friends_count":314,"listed_count":16,"created_at":"Fri + Nov 26 00:19:49 +0000 2010","favourites_count":129,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":227,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/794220000450150401\/D-eFg44R_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/794220000450150401\/D-eFg44R_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/219826253\/1349428277","profile_link_color":"0084B4","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"regular"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"en"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:06:50 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/models/channel/driver/twitter/fetch_channel_invalid.yml b/test/data/vcr_cassettes/models/channel/driver/twitter/fetch_channel_invalid.yml new file mode 100644 index 000000000..19c0055e3 --- /dev/null +++ b/test/data/vcr_cassettes/models/channel/driver/twitter/fetch_channel_invalid.yml @@ -0,0 +1,51 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.twitter.com/1.1/search/tweets.json?count=100&q=zammad&result_type=mixed + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="b5b77e1667355db2efc64e178b8a0aaa", + oauth_signature="tybPhlz3I5fMRF5%2BE12Pwx3U5XM%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543796201", oauth_token="key", oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 401 + message: Unauthorized + headers: + Connection: + - close + Content-Length: + - '62' + Content-Type: + - application/json; charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:16:41 GMT + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379620109191613; Expires=Wed, 02 Dec 2020 00:16:41 GMT; Path=/; + Domain=.twitter.com + - personalization_id="v1_i2UDOt8QXhYvnNAv90Q8jA=="; Expires=Wed, 02 Dec 2020 + 00:16:41 GMT; Path=/; Domain=.twitter.com + Strict-Transport-Security: + - max-age=631138519 + X-Connection-Hash: + - 8af740bd8d5f98022086657c7172b7ee + X-Response-Time: + - '114' + body: + encoding: UTF-8 + string: '{"errors":[{"code":89,"message":"Invalid or expired token."}]}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:16:41 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/models/channel/driver/twitter/fetch_channel_valid.yml b/test/data/vcr_cassettes/models/channel/driver/twitter/fetch_channel_valid.yml new file mode 100644 index 000000000..de11be33f --- /dev/null +++ b/test/data/vcr_cassettes/models/channel/driver/twitter/fetch_channel_valid.yml @@ -0,0 +1,6566 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.twitter.com/1.1/search/tweets.json?count=100&q=zammad&result_type=mixed + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="8efb0d12349b48e6acaa2ec6ff224cc2", + oauth_signature="uABvZoC5sN%2F68E4oxp6Qk6SxO2Y%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795852", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '100314' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:10:52 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:10:52 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379585206598350; Expires=Wed, 02 Dec 2020 00:10:52 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_waQbYwEcthV3BgOM79ebyA=="; Expires=Wed, 02 Dec 2020 + 00:10:52 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - a1a23cf829d6620a58e4f36784e4cb35 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '180' + X-Rate-Limit-Remaining: + - '174' + X-Rate-Limit-Reset: + - '1543796367' + X-Response-Time: + - '350' + X-Transaction: + - '009c973e00526e95' + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"statuses":[{"created_at":"Sun Dec 02 16:20:35 +0000 2018","id":1069265077583400960,"id_str":"1069265077583400960","text":"@pexample + @Example1 Not Love only FAME","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"pexample","name":"Zarghuna + Bukhari","id":2176345957,"id_str":"2176345957","indices":[0,12]},{"screen_name":"Example1","name":"Reham + Khan","id":298959564,"id_str":"298959564","indices":[13,24]}],"urls":[]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":1068958852887076864,"in_reply_to_status_id_str":"1068958852887076864","in_reply_to_user_id":2176345957,"in_reply_to_user_id_str":"2176345957","in_reply_to_screen_name":"pexample","user":{"id":2694949692,"id_str":"2694949692","name":"Zammad + Mustafa","screen_name":"mexample","location":"Multan, Pakistan","description":"","url":"https:\/\/t.co\/xEj6qKXjcM","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/xEj6qKXjcM","expanded_url":"https:\/\/www.example.com\/zammad.example","display_url":"facebook.com\/zammad.example","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1442,"friends_count":1432,"listed_count":1,"created_at":"Thu + Jul 31 06:49:25 +0000 2014","favourites_count":2003,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":1745,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2694949692\/1481660142","profile_link_color":"7FDBB6","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":1,"favorited":false,"retweeted":false,"lang":"en"},{"created_at":"Sat + Dec 01 06:30:03 +0000 2018","id":1068754078241501184,"id_str":"1068754078241501184","text":"GitHub + Trending Archive, 29 Nov 2018, Ruby. mgleon08\/example-crawler, tongueroo\/jets, + testdouble\/standard, matthe\u2026 https:\/\/t.co\/JhiOoxbwVL","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/JhiOoxbwVL","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1068754078241501184","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/github.example.com\/awesome\/\" rel=\"nofollow\"\u003eGithub + Awesome Search\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":993040996744159233,"id_str":"993040996744159233","name":"example","screen_name":"example","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":81,"friends_count":105,"listed_count":1,"created_at":"Sun + May 06 08:13:18 +0000 2018","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":9355,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/993040996744159233\/1526470497","profile_link_color":"E81C4F","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Fri + Nov 30 12:23:31 +0000 2018","id":1068480642663542784,"id_str":"1068480642663542784","text":"@mexample + @AExample @TGExample Tell that to any left wing political person who tweets + somewhat consistently on this site","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"mexample","name":"Zammad + Mustafa","id":2694949692,"id_str":"2694949692","indices":[0,14]},{"screen_name":"AExample","name":"ahad","id":2320914337,"id_str":"2320914337","indices":[15,23]},{"screen_name":"TGExample","name":"Twitter + Gaming","id":3873936134,"id_str":"3873936134","indices":[24,38]}],"urls":[]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter + for iPhone\u003c\/a\u003e","in_reply_to_status_id":1062817263106039814,"in_reply_to_status_id_str":"1062817263106039814","in_reply_to_user_id":2694949692,"in_reply_to_user_id_str":"2694949692","in_reply_to_screen_name":"mexample","user":{"id":980307493954895872,"id_str":"980307493954895872","name":"Luke + Appleford","screen_name":"LukeAppleford1","location":"Traverse City, MI","description":"Games + eSports","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":2,"friends_count":216,"listed_count":0,"created_at":"Sun + Apr 01 04:54:54 +0000 2018","favourites_count":84,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":499,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"F5F8FA","profile_background_image_url":null,"profile_background_image_url_https":null,"profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/982030415094575107\/uoPHSILZ_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/982030415094575107\/uoPHSILZ_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/980307493954895872\/1522969368","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":true,"default_profile":true,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"en"},{"created_at":"Fri + Nov 30 06:30:02 +0000 2018","id":1068391688459051009,"id_str":"1068391688459051009","text":"GitHub + Trending Archive, 28 Nov 2018, Ruby. djezzzl\/database_consistency, adworse\/iguvium, + testdouble\/standard, git\u2026 https:\/\/t.co\/lcXoXyEjkQ","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/lcXoXyEjkQ","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1068391688459051009","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/github.example.com\/awesome\/\" rel=\"nofollow\"\u003eGithub + Awesome Search\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":993040996744159233,"id_str":"993040996744159233","name":"example","screen_name":"example","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":81,"friends_count":105,"listed_count":1,"created_at":"Sun + May 06 08:13:18 +0000 2018","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":9355,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/993040996744159233\/1526470497","profile_link_color":"E81C4F","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Thu + Nov 29 13:03:10 +0000 2018","id":1068128231952400386,"id_str":"1068128231952400386","text":"@example_org + Pmln=Chor","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"example_org","name":"Example(N)","id":497658491,"id_str":"497658491","indices":[0,9]}],"urls":[]},"metadata":{"iso_language_code":"es","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":1068124600951803905,"in_reply_to_status_id_str":"1068124600951803905","in_reply_to_user_id":497658491,"in_reply_to_user_id_str":"497658491","in_reply_to_screen_name":"example_org","user":{"id":2694949692,"id_str":"2694949692","name":"Zammad + Mustafa","screen_name":"mexample","location":"Multan, Pakistan","description":"","url":"https:\/\/t.co\/xEj6qKXjcM","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/xEj6qKXjcM","expanded_url":"https:\/\/www.example.com\/zammad.example","display_url":"facebook.com\/zammad.example","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1442,"friends_count":1432,"listed_count":1,"created_at":"Thu + Jul 31 06:49:25 +0000 2014","favourites_count":2003,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":1745,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2694949692\/1481660142","profile_link_color":"7FDBB6","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"es"},{"created_at":"Thu + Nov 29 06:30:02 +0000 2018","id":1068029300794785792,"id_str":"1068029300794785792","text":"GitHub + Trending Archive, 27 Nov 2018, Ruby. djezzzl\/database_consistency, adworse\/iguvium, + testdouble\/standard, uoh\u2026 https:\/\/t.co\/1HdM47L90h","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/1HdM47L90h","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1068029300794785792","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/github.example.com\/awesome\/\" rel=\"nofollow\"\u003eGithub + Awesome Search\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":993040996744159233,"id_str":"993040996744159233","name":"example","screen_name":"example","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":81,"friends_count":105,"listed_count":1,"created_at":"Sun + May 06 08:13:18 +0000 2018","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":9355,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/993040996744159233\/1526470497","profile_link_color":"E81C4F","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Wed + Nov 28 06:30:09 +0000 2018","id":1067666938346692608,"id_str":"1067666938346692608","text":"GitHub + Trending Archive, 26 Nov 2018, Ruby. travis-ci\/travis.rb, zammad\/zammad, + citation-style-language\/styles, ath\u2026 https:\/\/t.co\/0Rxi6UIxPn","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/0Rxi6UIxPn","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1067666938346692608","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/github.example.com\/awesome\/\" rel=\"nofollow\"\u003eGithub + Awesome Search\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":993040996744159233,"id_str":"993040996744159233","name":"example","screen_name":"example","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":81,"friends_count":105,"listed_count":1,"created_at":"Sun + May 06 08:13:18 +0000 2018","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":9355,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/993040996744159233\/1526470497","profile_link_color":"E81C4F","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Tue + Nov 27 20:16:04 +0000 2018","id":1067512400096702464,"id_str":"1067512400096702464","text":"RT + @chaudhry_nabeel: 100 days of Patwari life \ud83d\ude25\ud83d\ude25\n\nRT + and share there misery\n#100DaysOfKhan https:\/\/t.co\/8SuDIKp2np","truncated":false,"entities":{"hashtags":[{"text":"100DaysOfKhan","indices":[76,90]}],"symbols":[],"user_mentions":[{"screen_name":"chaudhry_nabeel","name":"Nabeel + Chaudhry","id":148806508,"id_str":"148806508","indices":[3,19]}],"urls":[],"media":[{"id":1067456003346755585,"id_str":"1067456003346755585","indices":[91,114],"media_url":"http:\/\/pbs.twimg.com\/ext_tw_video_thumb\/1067456003346755585\/pu\/img\/tic7hRa9OHyvJL-z.jpg","media_url_https":"https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/1067456003346755585\/pu\/img\/tic7hRa9OHyvJL-z.jpg","url":"https:\/\/t.co\/8SuDIKp2np","display_url":"pic.twitter.com\/8SuDIKp2np","expanded_url":"https:\/\/twitter.com\/chaudhry_nabeel\/status\/1067458921831546880\/video\/1","type":"photo","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":1200,"h":669,"resize":"fit"},"large":{"w":1280,"h":714,"resize":"fit"},"small":{"w":680,"h":379,"resize":"fit"}},"source_status_id":1067458921831546880,"source_status_id_str":"1067458921831546880","source_user_id":148806508,"source_user_id_str":"148806508"}]},"extended_entities":{"media":[{"id":1067456003346755585,"id_str":"1067456003346755585","indices":[91,114],"media_url":"http:\/\/pbs.twimg.com\/ext_tw_video_thumb\/1067456003346755585\/pu\/img\/tic7hRa9OHyvJL-z.jpg","media_url_https":"https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/1067456003346755585\/pu\/img\/tic7hRa9OHyvJL-z.jpg","url":"https:\/\/t.co\/8SuDIKp2np","display_url":"pic.twitter.com\/8SuDIKp2np","expanded_url":"https:\/\/twitter.com\/chaudhry_nabeel\/status\/1067458921831546880\/video\/1","type":"video","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":1200,"h":669,"resize":"fit"},"large":{"w":1280,"h":714,"resize":"fit"},"small":{"w":680,"h":379,"resize":"fit"}},"source_status_id":1067458921831546880,"source_status_id_str":"1067458921831546880","source_user_id":148806508,"source_user_id_str":"148806508","video_info":{"aspect_ratio":[640,357],"duration_millis":46933,"variants":[{"content_type":"application\/x-mpegURL","url":"https:\/\/video.twimg.com\/ext_tw_video\/1067456003346755585\/pu\/pl\/x7OlDUqM8vFckfqL.m3u8?tag=5"},{"bitrate":256000,"content_type":"video\/mp4","url":"https:\/\/video.twimg.com\/ext_tw_video\/1067456003346755585\/pu\/vid\/322x180\/fOH4uRhl0DahC-c9.mp4?tag=5"},{"bitrate":2176000,"content_type":"video\/mp4","url":"https:\/\/video.twimg.com\/ext_tw_video\/1067456003346755585\/pu\/vid\/1280x714\/MXl3naMgncziejIx.mp4?tag=5"},{"bitrate":832000,"content_type":"video\/mp4","url":"https:\/\/video.twimg.com\/ext_tw_video\/1067456003346755585\/pu\/vid\/644x360\/jpwRvUvlD37j_w2a.mp4?tag=5"}]},"additional_media_info":{"monetizable":false,"source_user":{"id":148806508,"id_str":"148806508","name":"Nabeel + Chaudhry","screen_name":"chaudhry_nabeel","location":"Gujranwala","description":"A + good dentist never gets on your nerves\nI edit photos and videos just for + Fun","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":24292,"friends_count":3172,"listed_count":41,"created_at":"Thu + May 27 17:07:00 +0000 2010","favourites_count":32993,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":40495,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/976550528414048257\/HsYRKtE7_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/976550528414048257\/HsYRKtE7_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/148806508\/1541347396","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":true,"default_profile":true,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"}}}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2694949692,"id_str":"2694949692","name":"Zammad + Mustafa","screen_name":"mexample","location":"Multan, Pakistan","description":"","url":"https:\/\/t.co\/xEj6qKXjcM","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/xEj6qKXjcM","expanded_url":"https:\/\/www.example.com\/zammad.example","display_url":"facebook.com\/zammad.example","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1442,"friends_count":1432,"listed_count":1,"created_at":"Thu + Jul 31 06:49:25 +0000 2014","favourites_count":2003,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":1745,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2694949692\/1481660142","profile_link_color":"7FDBB6","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Tue + Nov 27 16:43:34 +0000 2018","id":1067458921831546880,"id_str":"1067458921831546880","text":"100 + days of Patwari life \ud83d\ude25\ud83d\ude25\n\nRT and share there misery\n#100DaysOfKhan + https:\/\/t.co\/8SuDIKp2np","truncated":false,"entities":{"hashtags":[{"text":"100DaysOfKhan","indices":[55,69]}],"symbols":[],"user_mentions":[],"urls":[],"media":[{"id":1067456003346755585,"id_str":"1067456003346755585","indices":[70,93],"media_url":"http:\/\/pbs.twimg.com\/ext_tw_video_thumb\/1067456003346755585\/pu\/img\/tic7hRa9OHyvJL-z.jpg","media_url_https":"https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/1067456003346755585\/pu\/img\/tic7hRa9OHyvJL-z.jpg","url":"https:\/\/t.co\/8SuDIKp2np","display_url":"pic.twitter.com\/8SuDIKp2np","expanded_url":"https:\/\/twitter.com\/chaudhry_nabeel\/status\/1067458921831546880\/video\/1","type":"photo","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":1200,"h":669,"resize":"fit"},"large":{"w":1280,"h":714,"resize":"fit"},"small":{"w":680,"h":379,"resize":"fit"}}}]},"extended_entities":{"media":[{"id":1067456003346755585,"id_str":"1067456003346755585","indices":[70,93],"media_url":"http:\/\/pbs.twimg.com\/ext_tw_video_thumb\/1067456003346755585\/pu\/img\/tic7hRa9OHyvJL-z.jpg","media_url_https":"https:\/\/pbs.twimg.com\/ext_tw_video_thumb\/1067456003346755585\/pu\/img\/tic7hRa9OHyvJL-z.jpg","url":"https:\/\/t.co\/8SuDIKp2np","display_url":"pic.twitter.com\/8SuDIKp2np","expanded_url":"https:\/\/twitter.com\/chaudhry_nabeel\/status\/1067458921831546880\/video\/1","type":"video","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":1200,"h":669,"resize":"fit"},"large":{"w":1280,"h":714,"resize":"fit"},"small":{"w":680,"h":379,"resize":"fit"}},"video_info":{"aspect_ratio":[640,357],"duration_millis":46933,"variants":[{"content_type":"application\/x-mpegURL","url":"https:\/\/video.twimg.com\/ext_tw_video\/1067456003346755585\/pu\/pl\/x7OlDUqM8vFckfqL.m3u8?tag=5"},{"bitrate":256000,"content_type":"video\/mp4","url":"https:\/\/video.twimg.com\/ext_tw_video\/1067456003346755585\/pu\/vid\/322x180\/fOH4uRhl0DahC-c9.mp4?tag=5"},{"bitrate":2176000,"content_type":"video\/mp4","url":"https:\/\/video.twimg.com\/ext_tw_video\/1067456003346755585\/pu\/vid\/1280x714\/MXl3naMgncziejIx.mp4?tag=5"},{"bitrate":832000,"content_type":"video\/mp4","url":"https:\/\/video.twimg.com\/ext_tw_video\/1067456003346755585\/pu\/vid\/644x360\/jpwRvUvlD37j_w2a.mp4?tag=5"}]},"additional_media_info":{"monetizable":false}}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":148806508,"id_str":"148806508","name":"Nabeel + Chaudhry","screen_name":"chaudhry_nabeel","location":"Gujranwala","description":"A + good dentist never gets on your nerves\nI edit photos and videos just for + Fun","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":24292,"friends_count":3172,"listed_count":41,"created_at":"Thu + May 27 17:07:00 +0000 2010","favourites_count":32993,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":40495,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/976550528414048257\/HsYRKtE7_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/976550528414048257\/HsYRKtE7_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/148806508\/1541347396","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":true,"default_profile":true,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":268,"favorite_count":649,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},"is_quote_status":false,"retweet_count":268,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Tue + Nov 27 10:36:04 +0000 2018","id":1067366438179151872,"id_str":"1067366438179151872","text":"RT + @zefanjas: Zammad LDAP Integration mit https:\/\/t.co\/wVe8RyJ9rE https:\/\/t.co\/Tm4uGm0TCc","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"zefanjas","name":"zefanjas","id":37184801,"id_str":"37184801","indices":[3,12]}],"urls":[{"url":"https:\/\/t.co\/wVe8RyJ9rE","expanded_url":"http:\/\/Linuxmuster.net","display_url":"Linuxmuster.net","indices":[42,65]},{"url":"https:\/\/t.co\/Tm4uGm0TCc","expanded_url":"http:\/\/rviv.ly\/0yY5qp","display_url":"rviv.ly\/0yY5qp","indices":[66,89]}]},"metadata":{"iso_language_code":"ht","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/about.twitter.com\/products\/tweetdeck\" rel=\"nofollow\"\u003eTweetDeck\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2474118319,"id_str":"2474118319","name":"Thorsten + Eckel","screen_name":"MrThorstenEckel","location":"","description":"dev - + Zammad maintainer - OTRS customizer","url":"https:\/\/t.co\/m3UgsfNCXu","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/m3UgsfNCXu","expanded_url":"https:\/\/zammad.com","display_url":"zammad.com","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":61,"friends_count":40,"listed_count":1,"created_at":"Fri + May 02 14:31:56 +0000 2014","favourites_count":215,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":120,"lang":"de","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/832141531255623681\/D-mNs8yL_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/832141531255623681\/D-mNs8yL_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2474118319\/1487233103","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":false,"following":true,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Tue + Nov 27 08:04:35 +0000 2018","id":1067328318691790848,"id_str":"1067328318691790848","text":"Zammad + LDAP Integration mit https:\/\/t.co\/wVe8RyJ9rE https:\/\/t.co\/Tm4uGm0TCc","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/wVe8RyJ9rE","expanded_url":"http:\/\/Linuxmuster.net","display_url":"Linuxmuster.net","indices":[28,51]},{"url":"https:\/\/t.co\/Tm4uGm0TCc","expanded_url":"http:\/\/rviv.ly\/0yY5qp","display_url":"rviv.ly\/0yY5qp","indices":[52,75]}]},"metadata":{"iso_language_code":"ht","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/openschoolsolutions.org\" rel=\"nofollow\"\u003eMy_Blog_Tweeter\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":37184801,"id_str":"37184801","name":"zefanjas","screen_name":"zefanjas","location":"","description":"teacher, + sysadmin, open source, https:\/\/t.co\/jPPFTbyZMX,","url":"https:\/\/t.co\/dxttQkh7O8","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/dxttQkh7O8","expanded_url":"https:\/\/zefanjas.de","display_url":"zefanjas.de","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/jPPFTbyZMX","expanded_url":"http:\/\/linuxmuster.net","display_url":"linuxmuster.net","indices":[32,55]}]}},"protected":false,"followers_count":212,"friends_count":327,"listed_count":29,"created_at":"Sat + May 02 12:04:50 +0000 2009","favourites_count":131,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":1288,"lang":"de","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme18\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme18\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/915014575\/zefanjas_new_normal.png","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/915014575\/zefanjas_new_normal.png","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/37184801\/1512218035","profile_link_color":"038543","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":1,"favorite_count":2,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"ht"},"is_quote_status":false,"retweet_count":1,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"ht"},{"created_at":"Tue + Nov 27 08:04:35 +0000 2018","id":1067328318691790848,"id_str":"1067328318691790848","text":"Zammad + LDAP Integration mit https:\/\/t.co\/wVe8RyJ9rE https:\/\/t.co\/Tm4uGm0TCc","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/wVe8RyJ9rE","expanded_url":"http:\/\/Linuxmuster.net","display_url":"Linuxmuster.net","indices":[28,51]},{"url":"https:\/\/t.co\/Tm4uGm0TCc","expanded_url":"http:\/\/rviv.ly\/0yY5qp","display_url":"rviv.ly\/0yY5qp","indices":[52,75]}]},"metadata":{"iso_language_code":"ht","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/openschoolsolutions.org\" rel=\"nofollow\"\u003eMy_Blog_Tweeter\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":37184801,"id_str":"37184801","name":"zefanjas","screen_name":"zefanjas","location":"","description":"teacher, + sysadmin, open source, https:\/\/t.co\/jPPFTbyZMX,","url":"https:\/\/t.co\/dxttQkh7O8","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/dxttQkh7O8","expanded_url":"https:\/\/zefanjas.de","display_url":"zefanjas.de","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/jPPFTbyZMX","expanded_url":"http:\/\/linuxmuster.net","display_url":"linuxmuster.net","indices":[32,55]}]}},"protected":false,"followers_count":212,"friends_count":327,"listed_count":29,"created_at":"Sat + May 02 12:04:50 +0000 2009","favourites_count":131,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":1288,"lang":"de","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme18\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme18\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/915014575\/zefanjas_new_normal.png","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/915014575\/zefanjas_new_normal.png","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/37184801\/1512218035","profile_link_color":"038543","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":1,"favorite_count":2,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"ht"},{"created_at":"Mon + Nov 26 11:39:24 +0000 2018","id":1067019989121724416,"id_str":"1067019989121724416","text":"zammad\/zammad: + Zammad is a web based open source helpdesk\/customer support system https:\/\/t.co\/a1FHuA1nrT","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/a1FHuA1nrT","expanded_url":"https:\/\/example.com\/zammad\/zammad","display_url":"example.com\/zammad\/zammad","indices":[82,105]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":35983221,"id_str":"35983221","name":"Alex + Ishida","screen_name":"alexishida","location":"Porto Velho, Brasil","description":"Senior + Software Developer, Ruby on Rails Evangelist, Blockchain Enthusiast, Gamer, + Addicted to Electronic, Photography and Technology.","url":"https:\/\/t.co\/fG4NwLjeSS","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/fG4NwLjeSS","expanded_url":"https:\/\/www.example.com\/in\/alexishida\/","display_url":"example.com\/in\/alexishida\/","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":508,"friends_count":1050,"listed_count":90,"created_at":"Tue + Apr 28 04:04:57 +0000 2009","favourites_count":812,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":4229,"lang":"pt","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"5D7382","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme14\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme14\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/932827443404197888\/kFWnZpm2_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/932827443404197888\/kFWnZpm2_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/35983221\/1511238535","profile_link_color":"5C6B7E","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"EFEFEF","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Mon + Nov 26 06:30:13 +0000 2018","id":1066942182664224769,"id_str":"1066942182664224769","text":"GitHub + Trending Archive, 24 Nov 2018, Ruby. asciidoctor\/asciidoctor-pdf, uohzxela\/clean-code-ruby, + ManageIQ\/managei\u2026 https:\/\/t.co\/gWM7paKJXZ","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/gWM7paKJXZ","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1066942182664224769","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"und","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/github.example.com\/awesome\/\" rel=\"nofollow\"\u003eGithub + Awesome Search\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":993040996744159233,"id_str":"993040996744159233","name":"example","screen_name":"example","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":81,"friends_count":105,"listed_count":1,"created_at":"Sun + May 06 08:13:18 +0000 2018","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":9355,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/993040996744159233\/1526470497","profile_link_color":"E81C4F","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"und"},{"created_at":"Sun + Nov 25 20:19:27 +0000 2018","id":1066788475469529091,"id_str":"1066788475469529091","text":"I + added a video to a @YouTube playlist https:\/\/t.co\/3v4JTQKOQp Cardi B, Bad + Bunny & J Balvin - I Like It [Official Music Video]","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"YouTube","name":"YouTube","id":10228272,"id_str":"10228272","indices":[21,29]}],"urls":[{"url":"https:\/\/t.co\/3v4JTQKOQp","expanded_url":"http:\/\/youtu.be\/xTlNMmZKwpA?a","display_url":"youtu.be\/xTlNMmZKwpA?a","indices":[39,62]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/www.example.com\/\" rel=\"nofollow\"\u003eGoogle\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2694949692,"id_str":"2694949692","name":"Zammad + Mustafa","screen_name":"mexample","location":"Multan, Pakistan","description":"","url":"https:\/\/t.co\/xEj6qKXjcM","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/xEj6qKXjcM","expanded_url":"https:\/\/www.example.com\/zammad.example","display_url":"facebook.com\/zammad.example","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1442,"friends_count":1432,"listed_count":1,"created_at":"Thu + Jul 31 06:49:25 +0000 2014","favourites_count":2003,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":1745,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2694949692\/1481660142","profile_link_color":"7FDBB6","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Sun + Nov 25 06:30:03 +0000 2018","id":1066579751278567424,"id_str":"1066579751278567424","text":"GitHub + Trending Archive, 23 Nov 2018, Ruby. fbkcs\/msf-elf-in-memory-execution, ciconia\/modulation, + contentful-labs\/\u2026 https:\/\/t.co\/pSQs0HwgrE","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/pSQs0HwgrE","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1066579751278567424","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/github.example.com\/awesome\/\" rel=\"nofollow\"\u003eGithub + Awesome Search\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":993040996744159233,"id_str":"993040996744159233","name":"example","screen_name":"example","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":81,"friends_count":105,"listed_count":1,"created_at":"Sun + May 06 08:13:18 +0000 2018","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":9355,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/993040996744159233\/1526470497","profile_link_color":"E81C4F","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Sun + Nov 25 05:48:06 +0000 2018","id":1066569192860762112,"id_str":"1066569192860762112","text":"I + added a video to a @YouTube playlist https:\/\/t.co\/OZOnKsQUH6 We Put Lego + In a Blender and it was Worth It!","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"YouTube","name":"YouTube","id":10228272,"id_str":"10228272","indices":[21,29]}],"urls":[{"url":"https:\/\/t.co\/OZOnKsQUH6","expanded_url":"http:\/\/youtu.be\/Po4C-IiAJlQ?a","display_url":"youtu.be\/Po4C-IiAJlQ?a","indices":[39,62]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/www.example.com\/\" rel=\"nofollow\"\u003eGoogle\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2694949692,"id_str":"2694949692","name":"Zammad + Mustafa","screen_name":"mexample","location":"Multan, Pakistan","description":"","url":"https:\/\/t.co\/xEj6qKXjcM","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/xEj6qKXjcM","expanded_url":"https:\/\/www.example.com\/zammad.example","display_url":"facebook.com\/zammad.example","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1442,"friends_count":1432,"listed_count":1,"created_at":"Thu + Jul 31 06:49:25 +0000 2014","favourites_count":2003,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":1745,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2694949692\/1481660142","profile_link_color":"7FDBB6","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Sat + Nov 24 12:41:19 +0000 2018","id":1066310793925455872,"id_str":"1066310793925455872","text":"@zammadhq + Danke. Noch eine Frage zu Twitter und Zammad. Wo kann ich das Standarttemplate + f\u00fcr Twitter bearbeiten?","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"zammadhq","name":"Zammad + HQ","id":785412523193425920,"id_str":"785412523193425920","indices":[0,9]}],"urls":[]},"metadata":{"iso_language_code":"de","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":1066307515649003520,"in_reply_to_status_id_str":"1066307515649003520","in_reply_to_user_id":785412523193425920,"in_reply_to_user_id_str":"785412523193425920","in_reply_to_screen_name":"zammadhq","user":{"id":280647844,"id_str":"280647844","name":"fexample","screen_name":"fexample","location":"Berlin","description":"ITler, + Autist und Podcaster |\nim CCC Umfeld aktiv | er\/he","url":"https:\/\/t.co\/lqrFmdOsAP","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/lqrFmdOsAP","expanded_url":"http:\/\/fexample.org","display_url":"fexample.org","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":456,"friends_count":701,"listed_count":20,"created_at":"Mon + Apr 11 19:18:56 +0000 2011","favourites_count":24752,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":13973,"lang":"de","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/851468284230848517\/HAmK9OTy_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/851468284230848517\/HAmK9OTy_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/280647844\/1454753210","profile_link_color":"0F125C","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"de"},{"created_at":"Sat + Nov 24 11:51:40 +0000 2018","id":1066298300649877504,"id_str":"1066298300649877504","text":"@zammadhq + Ist es im Moment eigentlich m\u00f6glich, Twitter DMs via Zammad zu Verwalten?","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"zammadhq","name":"Zammad + HQ","id":785412523193425920,"id_str":"785412523193425920","indices":[0,9]}],"urls":[]},"metadata":{"iso_language_code":"de","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":785412523193425920,"in_reply_to_user_id_str":"785412523193425920","in_reply_to_screen_name":"zammadhq","user":{"id":280647844,"id_str":"280647844","name":"fexample","screen_name":"fexample","location":"Berlin","description":"ITler, + Autist und Podcaster |\nim CCC Umfeld aktiv | er\/he","url":"https:\/\/t.co\/lqrFmdOsAP","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/lqrFmdOsAP","expanded_url":"http:\/\/fexample.org","display_url":"fexample.org","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":456,"friends_count":701,"listed_count":20,"created_at":"Mon + Apr 11 19:18:56 +0000 2011","favourites_count":24752,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":13973,"lang":"de","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/851468284230848517\/HAmK9OTy_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/851468284230848517\/HAmK9OTy_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/280647844\/1454753210","profile_link_color":"0F125C","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"de"},{"created_at":"Sat + Nov 24 06:30:08 +0000 2018","id":1066217385328164864,"id_str":"1066217385328164864","text":"GitHub + Trending Archive, 22 Nov 2018, Ruby. socketry\/falcon, skycocker\/chromebrew, + zammad\/zammad, Linuxbrew\/brew, a\u2026 https:\/\/t.co\/2aRQBL4ltz","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/2aRQBL4ltz","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1066217385328164864","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/github.example.com\/awesome\/\" rel=\"nofollow\"\u003eGithub + Awesome Search\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":993040996744159233,"id_str":"993040996744159233","name":"example","screen_name":"example","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":81,"friends_count":105,"listed_count":1,"created_at":"Sun + May 06 08:13:18 +0000 2018","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":9355,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/996714244090417152\/2QDJvxkN_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/993040996744159233\/1526470497","profile_link_color":"E81C4F","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Fri + Nov 23 19:47:06 +0000 2018","id":1066055560028672000,"id_str":"1066055560028672000","text":"RT + @example: #Ruby #AutoTweet | Zammad: A Web-Based Open Source Helpdesk\/Customer + Support System https:\/\/t.co\/E092AvvEAH","truncated":false,"entities":{"hashtags":[{"text":"Ruby","indices":[12,17]},{"text":"AutoTweet","indices":[19,29]}],"symbols":[],"user_mentions":[{"screen_name":"example","name":"Yohan + J. Rodr\u00edguez","id":386830764,"id_str":"386830764","indices":[3,10]}],"urls":[{"url":"https:\/\/t.co\/E092AvvEAH","expanded_url":"https:\/\/goo.gl\/zducHG","display_url":"goo.gl\/zducHG","indices":[97,120]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/www.example.com\" rel=\"nofollow\"\u003eGApps-Newsletter2\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":175627617,"id_str":"175627617","name":"Imabit + Inc","screen_name":"imabit_inc","location":"Mexico","description":"Imabit + Inc. is a modern company dedicated to providing development services, design + and AI solutions for the Web, Mobile and Desktop","url":"https:\/\/t.co\/I67AMrwzPJ","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/I67AMrwzPJ","expanded_url":"https:\/\/www.imabit.com","display_url":"imabit.com","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":46,"friends_count":61,"listed_count":6,"created_at":"Sat + Aug 07 03:54:35 +0000 2010","favourites_count":37252,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":40504,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/937091164951289856\/tfIoqXYr_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/937091164951289856\/tfIoqXYr_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/175627617\/1512254942","profile_link_color":"0084B4","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Fri + Nov 23 19:47:00 +0000 2018","id":1066055532707020800,"id_str":"1066055532707020800","text":"#Ruby #AutoTweet + | Zammad: A Web-Based Open Source Helpdesk\/Customer Support System https:\/\/t.co\/E092AvvEAH","truncated":false,"entities":{"hashtags":[{"text":"Ruby","indices":[0,5]},{"text":"AutoTweet","indices":[7,17]}],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/E092AvvEAH","expanded_url":"https:\/\/goo.gl\/zducHG","display_url":"goo.gl\/zducHG","indices":[85,108]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/www.example.com\" rel=\"nofollow\"\u003eGApps-Newsletter\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":386830764,"id_str":"386830764","name":"Yohan + J. Rodr\u00edguez","screen_name":"example","location":"","description":"Nanotechnology + PhD. Developer & Blogger. Passion for Technology, Science and Chess - Keep + Walking..","url":"https:\/\/t.co\/w9cILKDGd9","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/w9cILKDGd9","expanded_url":"https:\/\/www.example.com","display_url":"example.com","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":3902,"friends_count":4396,"listed_count":153,"created_at":"Sat + Oct 08 00:19:29 +0000 2011","favourites_count":236,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":42678,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"022330","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme15\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme15\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1052285678342438912\/V6LP8BoX_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1052285678342438912\/V6LP8BoX_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/386830764\/1539719470","profile_link_color":"1B95E0","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"C0DFEC","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":1,"favorite_count":1,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},"is_quote_status":false,"retweet_count":1,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Fri + Nov 23 19:47:00 +0000 2018","id":1066055532707020800,"id_str":"1066055532707020800","text":"#Ruby #AutoTweet + | Zammad: A Web-Based Open Source Helpdesk\/Customer Support System https:\/\/t.co\/E092AvvEAH","truncated":false,"entities":{"hashtags":[{"text":"Ruby","indices":[0,5]},{"text":"AutoTweet","indices":[7,17]}],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/E092AvvEAH","expanded_url":"https:\/\/goo.gl\/zducHG","display_url":"goo.gl\/zducHG","indices":[85,108]}]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/www.example.com\" rel=\"nofollow\"\u003eGApps-Newsletter\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":386830764,"id_str":"386830764","name":"Yohan + J. Rodr\u00edguez","screen_name":"example","location":"","description":"Nanotechnology + PhD. Developer & Blogger. Passion for Technology, Science and Chess - Keep + Walking..","url":"https:\/\/t.co\/w9cILKDGd9","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/w9cILKDGd9","expanded_url":"https:\/\/www.example.com","display_url":"example.com","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":3902,"friends_count":4396,"listed_count":153,"created_at":"Sat + Oct 08 00:19:29 +0000 2011","favourites_count":236,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":42678,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"022330","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme15\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme15\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1052285678342438912\/V6LP8BoX_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1052285678342438912\/V6LP8BoX_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/386830764\/1539719470","profile_link_color":"1B95E0","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"C0DFEC","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":1,"favorite_count":1,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"en"},{"created_at":"Fri + Nov 23 16:30:39 +0000 2018","id":1066006121020882945,"id_str":"1066006121020882945","text":"RT + @IExample: \u0645\u06cc\u0631\u06d2 \u0630\u06c1\u0646 \u0645\u06cc\u06ba + \u0630\u0631\u0627 \u0633\u0627 \u0628\u06be\u06cc \u0627\u0628\u06c1\u0627\u0645 + \u0628\u0627\u0642\u06cc \u0646\u06c1\u06cc\u06ba \u06a9\u06c1 \u062f\u0648\u0646\u0648\u06ba + \u062d\u0645\u0644\u06d2 \u067e\u0627\u06a9\u0633\u062a\u0627\u0646 \u06a9\u0648 + \u062e\u0648\u0634\u062d\u0627\u0644\u06cc \u06a9\u06cc \u0688\u06af\u0631 + \u0633\u06d2 \u062f\u0648\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 + \u062e\u0648\u0627\u06c1\u0634\u0645\u0646\u062f \u0639\u0646\u0627\u0635\u0631 + \u06a9\u06cc \u062c\u0627\u0646\u0628 \u0633\u06d2\u2026","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"IExample","name":"Imran + Khan","id":122453931,"id_str":"122453931","indices":[3,16]}],"urls":[]},"metadata":{"iso_language_code":"ur","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2694949692,"id_str":"2694949692","name":"Zammad + Mustafa","screen_name":"mexample","location":"Multan, Pakistan","description":"","url":"https:\/\/t.co\/xEj6qKXjcM","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/xEj6qKXjcM","expanded_url":"https:\/\/www.example.com\/zammad.example","display_url":"facebook.com\/zammad.example","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1442,"friends_count":1432,"listed_count":1,"created_at":"Thu + Jul 31 06:49:25 +0000 2014","favourites_count":2003,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":1745,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2694949692\/1481660142","profile_link_color":"7FDBB6","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Fri + Nov 23 10:45:32 +0000 2018","id":1065919270960402433,"id_str":"1065919270960402433","text":"\u0645\u06cc\u0631\u06d2 + \u0630\u06c1\u0646 \u0645\u06cc\u06ba \u0630\u0631\u0627 \u0633\u0627 \u0628\u06be\u06cc + \u0627\u0628\u06c1\u0627\u0645 \u0628\u0627\u0642\u06cc \u0646\u06c1\u06cc\u06ba + \u06a9\u06c1 \u062f\u0648\u0646\u0648\u06ba \u062d\u0645\u0644\u06d2 \u067e\u0627\u06a9\u0633\u062a\u0627\u0646 + \u06a9\u0648 \u062e\u0648\u0634\u062d\u0627\u0644\u06cc \u06a9\u06cc \u0688\u06af\u0631 + \u0633\u06d2 \u062f\u0648\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 + \u062e\u0648\u0627\u06c1\u0634\u0645\u0646\u062f \u0639\u0646\u0627\u0635\u0631 + \u06a9\u06cc \u062c\u2026 https:\/\/t.co\/tn9WjxD6Ub","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/tn9WjxD6Ub","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1065919270960402433","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"ur","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":122453931,"id_str":"122453931","name":"Imran + Khan","screen_name":"IExample","location":"Pakistan","description":"Prime + Minister of Pakistan","url":"https:\/\/t.co\/zwxvk5i5Xu","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/zwxvk5i5Xu","expanded_url":"http:\/\/insaf.pk","display_url":"insaf.pk","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":8753744,"friends_count":19,"listed_count":8089,"created_at":"Fri + Mar 12 19:28:06 +0000 2010","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":5685,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"A7CCAB","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1034759395622756352\/G3QDI4pv_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1034759395622756352\/G3QDI4pv_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/122453931\/1534522318","profile_link_color":"179C41","profile_sidebar_border_color":"CCCCCC","profile_sidebar_fill_color":"E2F5E2","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"regular"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":true,"quoted_status_id":1065919107080560641,"quoted_status_id_str":"1065919107080560641","quoted_status":{"created_at":"Fri + Nov 23 10:44:53 +0000 2018","id":1065919107080560641,"id_str":"1065919107080560641","text":"\u06a9\u0631\u0627\u0686\u06cc + \u0645\u06cc\u06ba \u0686\u06cc\u0646\u06cc \u0642\u0648\u0646\u0635\u0644 + \u062e\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0648\u0631\u06a9\u0632\u0626\u06cc + \u0645\u06cc\u06ba \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u062f\u06c1\u0634\u062a + \u06af\u0631\u062f \u062d\u0645\u0644\u0648\u06ba \u06a9\u06cc \u0634\u062f\u06cc\u062f + \u0645\u0630\u0645\u062a \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4\u0645\u06cc\u0631\u06cc + \u062a\u0645\u0627\u0645 \u062f\u0639\u0627\u0626\u06cc\u06ba\/\u06c1\u0645\u062f\u0631\u062f\u06cc\u0627\u06ba\u2026 + https:\/\/t.co\/pkq8hsOTPX","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/pkq8hsOTPX","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1065919107080560641","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[116,139]}]},"metadata":{"iso_language_code":"ur","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":122453931,"id_str":"122453931","name":"Imran + Khan","screen_name":"IExample","location":"Pakistan","description":"Prime + Minister of Pakistan","url":"https:\/\/t.co\/zwxvk5i5Xu","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/zwxvk5i5Xu","expanded_url":"http:\/\/insaf.pk","display_url":"insaf.pk","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":8753744,"friends_count":19,"listed_count":8089,"created_at":"Fri + Mar 12 19:28:06 +0000 2010","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":5685,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"A7CCAB","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1034759395622756352\/G3QDI4pv_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1034759395622756352\/G3QDI4pv_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/122453931\/1534522318","profile_link_color":"179C41","profile_sidebar_border_color":"CCCCCC","profile_sidebar_fill_color":"E2F5E2","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"regular"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":3591,"favorite_count":17480,"favorited":false,"retweeted":false,"lang":"ur"},"retweet_count":3524,"favorite_count":14138,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"ur"},"is_quote_status":true,"quoted_status_id":1065919107080560641,"quoted_status_id_str":"1065919107080560641","retweet_count":3524,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"ur"},{"created_at":"Fri + Nov 23 16:30:32 +0000 2018","id":1066006092021489664,"id_str":"1066006092021489664","text":"RT + @IExample: \u06a9\u0631\u0627\u0686\u06cc \u0645\u06cc\u06ba \u0686\u06cc\u0646\u06cc + \u0642\u0648\u0646\u0635\u0644 \u062e\u0627\u0646\u06d2 \u067e\u0631 \u0646\u0627\u06a9\u0627\u0645 + \u062d\u0645\u0644\u06c1 \u067e\u0627\u06a9\u0633\u062a\u0627\u0646 \u0627\u0648\u0631 + \u0686\u06cc\u0646 \u06a9\u06d2 \u0645\u0627\u0628\u06cc\u0646 \u0627\u0646 + \u063a\u06cc\u0631 \u0645\u0639\u0645\u0648\u0644\u06cc \u062a\u062c\u0627\u0631\u062a\u06cc + \u0645\u0639\u0627\u06c1\u062f\u0648\u06ba \u06a9\u0627 \u0631\u062f\u0639\u0645\u0644 + \u06c1\u06d2 \u062c\u0648 \u0686\u06cc\u0646 \u06a9\u06d2 \u06c1\u0645\u0627\u0631\u06d2\u2026","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"IExample","name":"Imran + Khan","id":122453931,"id_str":"122453931","indices":[3,16]}],"urls":[]},"metadata":{"iso_language_code":"ur","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2694949692,"id_str":"2694949692","name":"Zammad + Mustafa","screen_name":"mexample","location":"Multan, Pakistan","description":"","url":"https:\/\/t.co\/xEj6qKXjcM","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/xEj6qKXjcM","expanded_url":"https:\/\/www.example.com\/zammad.example","display_url":"facebook.com\/zammad.example","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1442,"friends_count":1432,"listed_count":1,"created_at":"Thu + Jul 31 06:49:25 +0000 2014","favourites_count":2003,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":1745,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2694949692\/1481660142","profile_link_color":"7FDBB6","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Fri + Nov 23 10:47:33 +0000 2018","id":1065919778941005825,"id_str":"1065919778941005825","text":"\u06a9\u0631\u0627\u0686\u06cc + \u0645\u06cc\u06ba \u0686\u06cc\u0646\u06cc \u0642\u0648\u0646\u0635\u0644 + \u062e\u0627\u0646\u06d2 \u067e\u0631 \u0646\u0627\u06a9\u0627\u0645 \u062d\u0645\u0644\u06c1 + \u067e\u0627\u06a9\u0633\u062a\u0627\u0646 \u0627\u0648\u0631 \u0686\u06cc\u0646 + \u06a9\u06d2 \u0645\u0627\u0628\u06cc\u0646 \u0627\u0646 \u063a\u06cc\u0631 + \u0645\u0639\u0645\u0648\u0644\u06cc \u062a\u062c\u0627\u0631\u062a\u06cc + \u0645\u0639\u0627\u06c1\u062f\u0648\u06ba \u06a9\u0627 \u0631\u062f\u0639\u0645\u0644 + \u06c1\u06d2 \u062c\u0648 \u0686\u06cc\u0646 \u06a9\u06d2\u2026 https:\/\/t.co\/WKhYVFObQb","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/WKhYVFObQb","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1065919778941005825","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"ur","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":122453931,"id_str":"122453931","name":"Imran + Khan","screen_name":"IExample","location":"Pakistan","description":"Prime + Minister of Pakistan","url":"https:\/\/t.co\/zwxvk5i5Xu","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/zwxvk5i5Xu","expanded_url":"http:\/\/insaf.pk","display_url":"insaf.pk","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":8753744,"friends_count":19,"listed_count":8089,"created_at":"Fri + Mar 12 19:28:06 +0000 2010","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":5685,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"A7CCAB","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1034759395622756352\/G3QDI4pv_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1034759395622756352\/G3QDI4pv_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/122453931\/1534522318","profile_link_color":"179C41","profile_sidebar_border_color":"CCCCCC","profile_sidebar_fill_color":"E2F5E2","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"regular"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":5206,"favorite_count":28511,"favorited":false,"retweeted":false,"lang":"ur"},"is_quote_status":false,"retweet_count":5206,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"ur"},{"created_at":"Fri + Nov 23 00:34:39 +0000 2018","id":1065765537333080064,"id_str":"1065765537333080064","text":"rails\u306b\u3088\u308b\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u30ab\u30b9\u30bf\u30de\u30fc\u30b5\u30dd\u30fc\u30c8\u30b7\u30b9\u30c6\u30e0\u3002EC\u3001\u30de\u30fc\u30b1\u30c6\u30a3\u30f3\u30b0\u30aa\u30fc\u30c8\u30e1\u30fc\u30b7\u30e7\u30f3\u3068\u304b\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u30b7\u30b9\u30c6\u30e0\u3042\u308b\u3051\u3069\u3001\u7121\u6599\u3068\u3044\u3046\u70b9\u4ee5\u5916\u3067\u306f\u3001\u306a\u304b\u306a\u304b\u72ec\u81ea\u62e1\u5f35\u3082\u96e3\u3057\u3044\u3057\u3001\u6d3b\u7528\u304c\u96e3\u3057\u3044\u3002\u3002\u30b5\u30fc\u30d0\u306e\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3082\u4efb\u305b\u3089\u308c\u2026 + https:\/\/t.co\/EeUuZ4wDxj","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/EeUuZ4wDxj","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1065765537333080064","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"ja","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/buffer.com\" rel=\"nofollow\"\u003eBuffer\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":14711726,"id_str":"14711726","name":"\u305f\u304c\u307f\u3064","screen_name":"tagackt","location":"\u4e0b\u753a + ,Tokyo, Japan","description":"\u9152\u98f2\u7cfb\u7537\u5b50\u3002\u98df\u3079\u6b69\u304d\u3001\u5bb6\u98f2\u307f\u3001\u98df\u6750\u63a2\u3057\u3001\u9152\u5c4b\u3081\u3050\u308a\u306a\u3069\u98f2\u98df\u30e1\u30a4\u30f3\u3002\u30d6\u30ed\u30b0\u306b\u66f8\u3044\u305f\u98f2\u98df\u5e97\u306f400\u5e97\u8217\u307b\u3069\u3002\r\n\u65e5\u672c\u91523800\u7a2e\u3001\u713c\u914e800\u7a2e\u306e\u4e00\u89a7\u304b\u3089\u691c\u7d22\u3057\u3001\u5473\u3001\u9999\u308a\u3001\u30e1\u30e2\u7b49\u306e\u8a55\u4fa1\u3092\u8a18\u9332\u3067\u304d\u308b\u30a2\u30d7\u30ea + \u9152\u697d \u3092\u30ea\u30ea\u30fc\u30b9\u3057\u307e\u3057\u305f\u3002Twitter\u9023\u643a\u5bfe\u5fdc\uff011\u4e07\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u9054\u6210 + http:\/\/t.co\/MPzqEon","url":"http:\/\/t.co\/WxNh0gzqJE","entities":{"url":{"urls":[{"url":"http:\/\/t.co\/WxNh0gzqJE","expanded_url":"http:\/\/www.example.net\/blog\/","display_url":"example.net\/blog\/","indices":[0,22]}]},"description":{"urls":[{"url":"http:\/\/t.co\/MPzqEon","expanded_url":"http:\/\/bit.ly\/qWgJhu","display_url":"bit.ly\/qWgJhu","indices":[135,154]}]}},"protected":false,"followers_count":898,"friends_count":912,"listed_count":32,"created_at":"Fri + May 09 10:06:07 +0000 2008","favourites_count":3872,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":20415,"lang":"ja","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"709397","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme6\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme6\/bg.gif","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/544701031771164674\/9EszjZW4_normal.png","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/544701031771164674\/9EszjZW4_normal.png","profile_link_color":"FF3300","profile_sidebar_border_color":"86A4A6","profile_sidebar_fill_color":"A0C5C7","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"possibly_sensitive":false,"lang":"ja"},{"created_at":"Thu + Nov 22 19:39:50 +0000 2018","id":1065691345447211008,"id_str":"1065691345447211008","text":"@wrf42 + Hab ich schonmal bei Kunden zum Spielen gesehen, denen ich dann RT eingerichtet + habe ;-)\n\nBei Zammad warte i\u2026 https:\/\/t.co\/5sksNpRjSY","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"wrf42","name":"Falk + Stern","id":19840431,"id_str":"19840431","indices":[0,6]}],"urls":[{"url":"https:\/\/t.co\/5sksNpRjSY","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1065691345447211008","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"metadata":{"iso_language_code":"de","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter + for iPad\u003c\/a\u003e","in_reply_to_status_id":1065690447354445826,"in_reply_to_status_id_str":"1065690447354445826","in_reply_to_user_id":19840431,"in_reply_to_user_id_str":"19840431","in_reply_to_screen_name":"wrf42","user":{"id":118674790,"id_str":"118674790","name":"Michael + Smith","screen_name":"example","location":"Somewhere, Germany","description":"A + taste of #austria in lovely #nuremberg. @example, @example, #lego, #drageekeksi, + #perryrhodan and more.","url":"https:\/\/t.co\/9bqAc15vHA","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/9bqAc15vHA","expanded_url":"https:\/\/example.com\/example\/atasteofexample","display_url":"example.com\/example\/atast\u2026","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1345,"friends_count":404,"listed_count":182,"created_at":"Mon + Mar 01 12:24:00 +0000 2010","favourites_count":29311,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":41488,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/993875791921516544\/KxtPpRLJ_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/993875791921516544\/KxtPpRLJ_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/118674790\/1530637123","profile_link_color":"0084B4","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":true,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"de"},{"created_at":"Thu + Nov 22 19:36:16 +0000 2018","id":1065690447354445826,"id_str":"1065690447354445826","text":"@example + Ich w\u00fcrde mir aktuell Zammad angucken.","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"example","name":"Michael + Smith","id":118674790,"id_str":"118674790","indices":[0,9]}],"urls":[]},"metadata":{"iso_language_code":"de","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/tapbots.com\/tweetbot\" rel=\"nofollow\"\u003eTweetbot for + i\u039fS\u003c\/a\u003e","in_reply_to_status_id":1065689418353307648,"in_reply_to_status_id_str":"1065689418353307648","in_reply_to_user_id":118674790,"in_reply_to_user_id_str":"118674790","in_reply_to_screen_name":"example","user":{"id":19840431,"id_str":"19840431","name":"Falk + Stern","screen_name":"wrf42","location":"ZZ9 Plural Z Alpha, Third Rock from + the Central Star","description":"I \u2665 IP packets \u2022 @example_ort \u2022 + opinions are my own \u2022 DM7FS \u2022 https:\/\/t.co\/KuzUv395IN","url":"https:\/\/t.co\/e7or64Jxh7","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/e7or64Jxh7","expanded_url":"http:\/\/pants.fourecks.de\/","display_url":"pants.fourecks.de","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/KuzUv395IN","expanded_url":"http:\/\/tools.ietf.org\/html\/rfc1925","display_url":"tools.ietf.org\/html\/rfc1925","indices":[62,85]}]}},"protected":false,"followers_count":584,"friends_count":485,"listed_count":21,"created_at":"Sun + Feb 01 00:58:25 +0000 2009","favourites_count":1543,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":12886,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"709397","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme6\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme6\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/608727351455809536\/JHaWzvF6_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/608727351455809536\/JHaWzvF6_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/19840431\/1499724219","profile_link_color":"33178F","profile_sidebar_border_color":"86A4A6","profile_sidebar_fill_color":"A0C5C7","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":1,"favorited":false,"retweeted":false,"lang":"de"},{"created_at":"Thu + Nov 22 17:16:54 +0000 2018","id":1065655371375747075,"id_str":"1065655371375747075","text":"@idreesexample + @IExample Haram Kha Kha K Aisa Hota Hy","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"idreesexample","name":"Imran + Khan","id":705679307683864576,"id_str":"705679307683864576","indices":[0,15]},{"screen_name":"IExample","name":"Imran + Khan","id":122453931,"id_str":"122453931","indices":[16,29]}],"urls":[]},"metadata":{"iso_language_code":"hi","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":1065643822095446016,"in_reply_to_status_id_str":"1065643822095446016","in_reply_to_user_id":705679307683864576,"in_reply_to_user_id_str":"705679307683864576","in_reply_to_screen_name":"idreesexample","user":{"id":2694949692,"id_str":"2694949692","name":"Zammad + Mustafa","screen_name":"mexample","location":"Multan, Pakistan","description":"","url":"https:\/\/t.co\/xEj6qKXjcM","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/xEj6qKXjcM","expanded_url":"https:\/\/www.example.com\/zammad.example","display_url":"facebook.com\/zammad.example","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1442,"friends_count":1432,"listed_count":1,"created_at":"Thu + Jul 31 06:49:25 +0000 2014","favourites_count":2003,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":1745,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2694949692\/1481660142","profile_link_color":"7FDBB6","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"hi"},{"created_at":"Thu + Nov 22 17:03:35 +0000 2018","id":1065652021011931137,"id_str":"1065652021011931137","text":"Hallo + Berliner bubble.\nKennt jemand von euch die Zammad Leute?\nLaut Impressum + sitzen die mit im @clubdiscordia Geb\u00e4ude ... ^^","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"clubdiscordia","name":"CCC + Berlin","id":2434248872,"id_str":"2434248872","indices":[96,110]}],"urls":[]},"metadata":{"iso_language_code":"de","result_type":"recent"},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":737371663,"id_str":"737371663","name":"Thies + M\u00fcller","screen_name":"_td00_","location":"Zug zwischen BS - WOB - B + - HH","description":"nerd, hacker, ccc, punk, veggie, antifa, @33logistic, + @TundTeskalation, @cymoshow | Threema: 3JXMZUEJ |","url":"https:\/\/t.co\/pFa1ZF51pM","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/pFa1ZF51pM","expanded_url":"https:\/\/td00.de","display_url":"td00.de","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1336,"friends_count":941,"listed_count":54,"created_at":"Sat + Aug 04 20:33:10 +0000 2012","favourites_count":23290,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":30199,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"131516","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme14\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme14\/bg.gif","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/862655866327240704\/WtPq3dQv_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/862655866327240704\/WtPq3dQv_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/737371663\/1470086891","profile_link_color":"000000","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"regular"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":2,"favorited":false,"retweeted":false,"lang":"de"},{"created_at":"Thu + Nov 22 07:16:13 +0000 2018","id":1065504204805033984,"id_str":"1065504204805033984","text":"@tamexample + But over at Mastodon we don''t have a Zammad integration for all our LOC Members + ;)","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"tamexample","name":"(\u0e07 + \u0e37\u25bf \u0e37)\u0e27","id":354796681,"id_str":"354796681","indices":[0,8]}],"urls":[]},"metadata":{"iso_language_code":"en","result_type":"recent"},"source":"\u003ca + href=\"https:\/\/about.twitter.com\/products\/tweetdeck\" rel=\"nofollow\"\u003eTweetDeck\u003c\/a\u003e","in_reply_to_status_id":1065502326222479360,"in_reply_to_status_id_str":"1065502326222479360","in_reply_to_user_id":354796681,"in_reply_to_user_id_str":"354796681","in_reply_to_screen_name":"tamexample","user":{"id":811173206887460868,"id_str":"811173206887460868","name":"CCC + Event Logistics","screen_name":"33logistic","location":"Fair Leipzig Hall + H.. I meen 4","description":"Logistics for Chaos Events. Currently planning + an awesome #35c3 in Leipzig 35c3@example.de","url":"https:\/\/t.co\/g2YFZuZZsj","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/g2YFZuZZsj","expanded_url":"https:\/\/example.de","display_url":"example.de","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":2198,"friends_count":56,"listed_count":49,"created_at":"Tue + Dec 20 11:35:38 +0000 2016","favourites_count":170,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":370,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1064967265177792513\/muZEe7g0_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1064967265177792513\/muZEe7g0_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/811173206887460868\/1542742947","profile_link_color":"000000","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"en"}],"search_metadata":{"completed_in":0.084,"max_id":1069265077583400960,"max_id_str":"1069265077583400960","query":"zammad","refresh_url":"?since_id=1069265077583400960&q=zammad&result_type=mixed&include_entities=1","count":100,"since_id":0,"since_id_str":"0"}}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:53 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Multan,%20Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:52 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:53 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1032216233339445248/sE3rElf-_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:52 GMT + Last-Modified: + - Wed, 22 Aug 2018 10:39:42 GMT + Server: + - ECS (fcn/4185) + Surrogate-Key: + - profile_images profile_images/bucket/1 profile_images/1032216233339445248 + X-Cache: + - HIT + X-Connection-Hash: + - 4aa0559538910d485a94dd09522ec849 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '167' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:53 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Multan,%20Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:52 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:53 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1068958852887076864.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="83003a1356235c21998dbe47bd20e034", + oauth_signature="KtBt4mbxUM9pQeEHXi%2BywugYuqk%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795853", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2355' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:10:53 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:10:53 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379585310255274; Expires=Wed, 02 Dec 2020 00:10:53 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_tve4fbtcMRfmm6dmnmXedg=="; Expires=Wed, 02 Dec 2020 + 00:10:53 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - 0aca1694790d2c9d90f420c87ceeb2e4 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '899' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '143' + X-Transaction: + - 0050ed090033b705 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Sat Dec 01 20:03:45 +0000 2018","id":1068958852887076864,"id_str":"1068958852887076864","text":"@Example1 + You really loved him that you are so jealous of his new wife and you never + stop discussing him on twitter. Aww","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"Example1","name":"Reham + Khan","id":298959564,"id_str":"298959564","indices":[0,11]}],"urls":[]},"source":"\u003ca + href=\"https:\/\/mobile.twitter.com\" rel=\"nofollow\"\u003eTwitter Lite\u003c\/a\u003e","in_reply_to_status_id":1068949846399348736,"in_reply_to_status_id_str":"1068949846399348736","in_reply_to_user_id":298959564,"in_reply_to_user_id_str":"298959564","in_reply_to_screen_name":"Example1","user":{"id":2176345957,"id_str":"2176345957","name":"Zarghuna + Bukhari","screen_name":"pexample","location":"Karachi.","description":"Clinical + Dietitian.","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":656,"friends_count":566,"listed_count":0,"created_at":"Tue + Nov 05 15:57:29 +0000 2013","favourites_count":3792,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":2112,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"1A1B1F","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme12\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme12\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1066314737775009794\/Fc_8OEzy_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1066314737775009794\/Fc_8OEzy_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2176345957\/1529427197","profile_link_color":"1B95E0","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"FFF7CC","profile_text_color":"0C3E53","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":10,"favorite_count":357,"favorited":false,"retweeted":false,"lang":"en"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:53 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Karachi.&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:53 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:53 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1066314737775009794/Fc_8OEzy_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:53 GMT + Last-Modified: + - Sat, 24 Nov 2018 12:54:59 GMT + Server: + - ECS (fcn/40DB) + Surrogate-Key: + - profile_images profile_images/bucket/4 profile_images/1066314737775009794 + X-Cache: + - MISS + X-Connection-Hash: + - d1053032a71c65d102c5cc884127ef48 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '191' + Content-Length: + - '2795' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:54 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Karachi.&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:53 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:54 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1068949846399348736.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="bb5275ca035610773ca6172601e35be6", + oauth_signature="yk2RDPjsEnljxqdWfmCOjS01ylg%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795854", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2907' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:10:53 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:10:53 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379585387409625; Max-Age=63072000; Expires=Wed, 2 Dec 2020 + 00:10:53 GMT; Path=/; Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_knKHpiHKorVFVQc/tXSXPg=="; Max-Age=63072000; Expires=Wed, + 2 Dec 2020 00:10:53 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - a72aa0752b65d266b89d5305c790ae2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '898' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '136' + X-Transaction: + - '0086ab1e00028706' + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Sat Dec 01 19:27:58 +0000 2018","id":1068949846399348736,"id_str":"1068949846399348736","text":"Ok + peeps it''s bad enough that PTI troll me but now I am getting criticism for + marrying a man who can give a chicken\u2026 https:\/\/t.co\/xitRHiP15a","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/xitRHiP15a","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1068949846399348736","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":298959564,"id_str":"298959564","name":"Reham + Khan","screen_name":"Example1","location":"Pakistan","description":"Contact + @BilalAzmat7 \n00923358100642\n\n\nThe views expressed here are mine and mine + alone. Devoted to improving lives \nhttps:\/\/t.co\/uPjPh2Na5n","url":"https:\/\/t.co\/YcOsNIC1KJ","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/YcOsNIC1KJ","expanded_url":"http:\/\/RehamKhanofficial.com","display_url":"RehamKhanofficial.com","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/uPjPh2Na5n","expanded_url":"https:\/\/m.facebook.com\/OfficialRehamKhan\/","display_url":"m.facebook.com\/OfficialRehamK\u2026","indices":[117,140]}]}},"protected":false,"followers_count":2100022,"friends_count":755,"listed_count":843,"created_at":"Sun + May 15 07:51:06 +0000 2011","favourites_count":5369,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":true,"statuses_count":62211,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"BADFCD","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1055415764252065792\/pYl_QxzD_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1055415764252065792\/pYl_QxzD_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/298959564\/1540465552","profile_link_color":"FF0000","profile_sidebar_border_color":"F2E195","profile_sidebar_fill_color":"FFF7CC","profile_text_color":"280C52","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":399,"favorite_count":3343,"favorited":false,"retweeted":false,"lang":"en"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:54 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:54 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:54 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1055415764252065792/pYl_QxzD_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:54 GMT + Last-Modified: + - Thu, 25 Oct 2018 11:06:21 GMT + Server: + - ECS (fcn/41AB) + Surrogate-Key: + - profile_images profile_images/bucket/4 profile_images/1055415764252065792 + X-Cache: + - HIT + X-Connection-Hash: + - 808c63dfece900392e65f5f9b1cad8bf + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '140' + Content-Length: + - '3685' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:54 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:54 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:54 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/996714244090417152/2QDJvxkN_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:54 GMT + Last-Modified: + - Wed, 16 May 2018 11:27:28 GMT + Server: + - ECS (fcn/40D6) + Surrogate-Key: + - profile_images profile_images/bucket/9 profile_images/996714244090417152 + X-Cache: + - HIT + X-Connection-Hash: + - ab26b5f1927b74df90b5558525c56a3b + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '137' + Content-Length: + - '4041' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:55 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Traverse%20City,%20MI&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:54 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:55 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/982030415094575107/uoPHSILZ_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:54 GMT + Last-Modified: + - Thu, 05 Apr 2018 22:59:10 GMT + Server: + - ECS (fcn/41D8) + Surrogate-Key: + - profile_images profile_images/bucket/4 profile_images/982030415094575107 + X-Cache: + - MISS + X-Connection-Hash: + - a8f29c6a5aeec40b4efbc68ef5c3c6d8 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '145' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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RkSsDA713PxHN15YbuGXHPN4jgqOHMJNdZqawBmugSfS/wATDITyMfFek0y10FbYiGSFnqKxBBRQKEYA4dTOjBMlq1uFO9WPMEdGge8zwtqO1ZjdexCvmVwDqp0KrqbT+cg3VpZqo29jHrM222GEKsoDJ2ce00+jKNchz9Y1JFcRV16GW3BEJyUA66zWzGDJ6zV4wLhOadvh3na/TpHKUnlXRDbPoRA1zhSDcFY1bDuuYRVeWWVWG9tejZpDuktbFtKGHmWcAyCZek1Xah2hhZ65jFkC0BnfLxtiW9YuMqIaNprq7nlFG8COI1a2JXNecD+o1I9InXLCs1SVZWnNvpUowA1QQ1gxPSYQVprxAkVNWcvk2u5mEurpo73ciRsFTt0OPlEr20AYZUEXlHCdjcFWGI55loeo4io0TeVdJ7wYQM+0nvfyz2T5J9hwT7Xlmv4mt9cT3pNaanf/AD//2SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:55 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Traverse%20City,%20MI&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:54 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:55 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1062817263106039814.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="756b2ebc88106059e7afdec3979455ed", + oauth_signature="KYRdmzJiODGS%2BYqqmYUPhwq2Fwc%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795855", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2598' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:10:55 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:10:55 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379585507600301; Expires=Wed, 02 Dec 2020 00:10:55 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_8guDTBlmE5OSoyD5jx8HdQ=="; Expires=Wed, 02 Dec 2020 + 00:10:55 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - b50ff4d156e5021b098336827d4ee458 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '897' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '141' + X-Transaction: + - 00de0542001e5721 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Wed Nov 14 21:19:16 +0000 2018","id":1062817263106039814,"id_str":"1062817263106039814","text":"@AExample + @TGExample You need to have more followers bro","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"AExample","name":"ahad","id":2320914337,"id_str":"2320914337","indices":[0,8]},{"screen_name":"TGExample","name":"Twitter + Gaming","id":3873936134,"id_str":"3873936134","indices":[9,23]}],"urls":[]},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":1062799096749031424,"in_reply_to_status_id_str":"1062799096749031424","in_reply_to_user_id":2320914337,"in_reply_to_user_id_str":"2320914337","in_reply_to_screen_name":"AExample","user":{"id":2694949692,"id_str":"2694949692","name":"Zammad + Mustafa","screen_name":"mexample","location":"Multan, Pakistan","description":"","url":"https:\/\/t.co\/xEj6qKXjcM","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/xEj6qKXjcM","expanded_url":"https:\/\/www.example.com\/zammad.example","display_url":"facebook.com\/zammad.example","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1442,"friends_count":1432,"listed_count":1,"created_at":"Thu + Jul 31 06:49:25 +0000 2014","favourites_count":2003,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":1745,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1032216233339445248\/sE3rElf-_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2694949692\/1481660142","profile_link_color":"7FDBB6","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":4,"favorited":false,"retweeted":false,"lang":"en"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:55 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Multan,%20Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:55 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:55 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1032216233339445248/sE3rElf-_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:55 GMT + Last-Modified: + - Wed, 22 Aug 2018 10:39:42 GMT + Server: + - ECS (fcn/4185) + Surrogate-Key: + - profile_images profile_images/bucket/1 profile_images/1032216233339445248 + X-Cache: + - HIT + X-Connection-Hash: + - 4aa0559538910d485a94dd09522ec849 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '167' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:55 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1062799096749031424.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="de1e719ccd92c862ad99062c09332301", + oauth_signature="ueto3kSV%2BcRxu%2FXOod5N4CqW%2BNk%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795855", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2596' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:10:55 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:10:55 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379585547654686; Expires=Wed, 02 Dec 2020 00:10:55 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_vE3KYlQSKbNBX+m+Em8D5g=="; Expires=Wed, 02 Dec 2020 + 00:10:55 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - 193e4e272a3ec2647220df5535a8a098 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '896' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '153' + X-Transaction: + - '0029f10c008a780f' + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Wed Nov 14 20:07:05 +0000 2018","id":1062799096749031424,"id_str":"1062799096749031424","text":"@TGExample + can u guys verify me please","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"TGExample","name":"Twitter + Gaming","id":3873936134,"id_str":"3873936134","indices":[0,14]}],"urls":[]},"source":"\u003ca + href=\"https:\/\/about.twitter.com\/products\/tweetdeck\" rel=\"nofollow\"\u003eTweetDeck\u003c\/a\u003e","in_reply_to_status_id":1062798995955703808,"in_reply_to_status_id_str":"1062798995955703808","in_reply_to_user_id":3873936134,"in_reply_to_user_id_str":"3873936134","in_reply_to_screen_name":"TGExample","user":{"id":2320914337,"id_str":"2320914337","name":"ahad","screen_name":"AExample","location":"LA + \u2022 Snap: a.had","description":"\u2022 Broadcaster, Genius, Rated #1 in + female focus groups \u2022 Powered by @geexample \u2022 @hexample \u2022 + Ahad@example.com","url":"https:\/\/t.co\/eA5JmgDflb","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/eA5JmgDflb","expanded_url":"http:\/\/twitch.tv\/ahad","display_url":"twitch.tv\/ahad","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":3189,"friends_count":836,"listed_count":58,"created_at":"Fri + Jan 31 14:48:00 +0000 2014","favourites_count":28259,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":69735,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"FFFFFF","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1069123511833178112\/V3XTG_GW_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1069123511833178112\/V3XTG_GW_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2320914337\/1504212204","profile_link_color":"981CEB","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"regular"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":10,"favorited":false,"retweeted":false,"lang":"en"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:56 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=LA%20%E2%80%A2%20Snap:%20a.had&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:55 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:56 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1069123511833178112/V3XTG_GW_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:55 GMT + Last-Modified: + - Sun, 02 Dec 2018 06:56:03 GMT + Server: + - ECS (fcn/40F9) + Surrogate-Key: + - profile_images profile_images/bucket/3 profile_images/1069123511833178112 + X-Cache: + - MISS + X-Connection-Hash: + - 2bacb280b040a042cb3d27f7abbe8427 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '135' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:56 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=LA%20%E2%80%A2%20Snap:%20a.had&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:55 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:56 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1062798995955703808.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="4b3ceecc83d55c1b720580fb1e3d36db", + oauth_signature="sYaGT3aj%2BUSwTMuTWouWuQti3BQ%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795856", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2476' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:10:56 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:10:56 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379585614243876; Expires=Wed, 02 Dec 2020 00:10:56 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_lM+inVTV113DsTcJA/sQmg=="; Expires=Wed, 02 Dec 2020 + 00:10:56 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - d8daee4172a3c150ee31a5e601e50889 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '895' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '141' + X-Transaction: + - 000f408d00289bc7 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Wed Nov 14 20:06:41 +0000 2018","id":1062798995955703808,"id_str":"1062798995955703808","text":"There + were some epic gaming conversations on Twitter this year, but we need your + help picking the best one!\n\nVote a\u2026 https:\/\/t.co\/1eyRCBiWzg","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/1eyRCBiWzg","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1062798995955703808","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"source":"\u003ca + href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":3873936134,"id_str":"3873936134","name":"Twitter + Gaming","screen_name":"TGExample","location":"","description":"Tweet, + game, repeat.","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":841546,"friends_count":1056,"listed_count":1725,"created_at":"Mon + Oct 12 22:08:01 +0000 2015","favourites_count":6538,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":true,"statuses_count":4442,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1013681179025813504\/_NywdWqj_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1013681179025813504\/_NywdWqj_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/3873936134\/1529345989","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":true,"default_profile":true,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":3950,"favorite_count":33354,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:56 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1013681179025813504/_NywdWqj_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:56 GMT + Last-Modified: + - Mon, 02 Jul 2018 07:08:01 GMT + Server: + - ECS (fcn/41A4) + Surrogate-Key: + - profile_images profile_images/bucket/5 profile_images/1013681179025813504 + X-Cache: + - HIT + X-Connection-Hash: + - 1a24c50309f9ea89af5f0c4203e04ef0 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '133' + Content-Length: + - '2083' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:56 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/996714244090417152/2QDJvxkN_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:56 GMT + Last-Modified: + - Wed, 16 May 2018 11:27:28 GMT + Server: + - ECS (fcn/40D6) + Surrogate-Key: + - profile_images profile_images/bucket/9 profile_images/996714244090417152 + X-Cache: + - HIT + X-Connection-Hash: + - ab26b5f1927b74df90b5558525c56a3b + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '137' + Content-Length: + - '4041' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:57 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Multan,%20Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:56 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:57 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1032216233339445248/sE3rElf-_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:56 GMT + Last-Modified: + - Wed, 22 Aug 2018 10:39:42 GMT + Server: + - ECS (fcn/4185) + Surrogate-Key: + - profile_images profile_images/bucket/1 profile_images/1032216233339445248 + X-Cache: + - HIT + X-Connection-Hash: + - 4aa0559538910d485a94dd09522ec849 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '167' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:57 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1068124600951803905.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="9778307d17972ae3edc5b5d2a5530bb4", + oauth_signature="qf8Acv3oYLzER%2BF53HL%2F7xQfbvM%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795857", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2990' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:10:57 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:10:57 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379585701455131; Expires=Wed, 02 Dec 2020 00:10:57 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_LuEj3Vd26x60T6JSdjPcdA=="; Expires=Wed, 02 Dec 2020 + 00:10:57 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - aa970f6efb385fda115cc602701e2fb8 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '894' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '140' + X-Transaction: + - '009ecb20005a891e' + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Thu Nov 29 12:48:44 +0000 2018","id":1068124600951803905,"id_str":"1068124600951803905","text":"\u062d\u06a9\u0648\u0645\u062a + \u06a9\u06d2 \u0627\u0628 \u062a\u06a9 \u06a9\u06d2 \u0633\u0648 \u062f\u0646 + \u201c \u06a9\u06be\u0627\u06cc\u0627 \u067e\u06cc\u0627 \u06a9\u0686\u06be + \u0646\u06c1\u06cc\u06ba\u060c \u06af\u0644\u0627\u0633 \u062a\u0648\u0691\u0627 \u0628\u0627\u0631\u06c1 + \u0622\u0646\u06d2 \u201c \u06a9\u06d2 \u0633\u0648\u0627 \u06a9\u0686\u06be + \u0646\u06c1\u06cc\u06ba- \n\n\u062d\u06a9\u0648\u0645\u062a \u06a9\u06d2 + \u067e\u0627\u0633 \u0646\u06c1 \u0648\u0698\u0646 \u06be\u06d2 \u0646\u0627 + \u0627\u2026 https:\/\/t.co\/TpzlQvLp9a","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/TpzlQvLp9a","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1068124600951803905","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":1068124597814525952,"in_reply_to_status_id_str":"1068124597814525952","in_reply_to_user_id":497658491,"in_reply_to_user_id_str":"497658491","in_reply_to_screen_name":"example_org","user":{"id":497658491,"id_str":"497658491","name":"Example(N)","screen_name":"example_org","location":"Pakistan","description":"Official + Twitter account of Pakistan Muslim League (Nawaz)","url":"https:\/\/t.co\/nCK2EmNWqL","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/nCK2EmNWqL","expanded_url":"http:\/\/www.example.org","display_url":"example.org","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1047224,"friends_count":130,"listed_count":463,"created_at":"Mon + Feb 20 06:59:13 +0000 2012","favourites_count":1252,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":true,"statuses_count":31776,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"0E6121","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1053235251139543040\/W4inys7x_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1053235251139543040\/W4inys7x_normal.jpg","profile_link_color":"10570C","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":24,"favorite_count":80,"favorited":false,"retweeted":false,"lang":"ur"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:57 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:57 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:57 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1053235251139543040/W4inys7x_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:57 GMT + Last-Modified: + - Fri, 19 Oct 2018 10:41:46 GMT + Server: + - ECS (fcn/40AD) + Surrogate-Key: + - profile_images profile_images/bucket/0 profile_images/1053235251139543040 + X-Cache: + - HIT + X-Connection-Hash: + - 5de825e58409ca5545855a733e3d3777 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '130' + Content-Length: + - '3685' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:57 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:57 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:57 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1068124597814525952.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="7ff1412c085625c63956f13fee4a0066", + oauth_signature="XTJJazMUukMF7V0QJysnt0RIbV0%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795857", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2941' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:10:57 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:10:57 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379585750194787; Expires=Wed, 02 Dec 2020 00:10:57 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_6qvsKHjK1l3l2N5Iq7SYkA=="; Expires=Wed, 02 Dec 2020 + 00:10:57 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - e07d8c42c796f07bada8a5fa5770c0a8 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '893' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '149' + X-Transaction: + - 00176cd9006e0072 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Thu Nov 29 12:48:43 +0000 2018","id":1068124597814525952,"id_str":"1068124597814525952","text":"\u062d\u06a9\u0648\u0645\u062a + \u06a9\u06d2 \u0627\u0628\u062a\u062f\u0627\u0626\u06cc 100 \u062f\u0646 \u06a9\u06cc + \u062a\u0642\u0631\u06cc\u0628 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0628\u0627\u0631 + \u067e\u06be\u0631 \u201c \u06cc\u06c1 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u060c + \u0648\u06c1 \u06a9\u0631\u06cc\u06ba \u06af\u06d2 \u201c \u06a9\u0627 \u062e\u06cc\u0627\u0644\u06cc + \u067e\u0644\u0627\u0624 \u067e\u06a9\u0627\u06cc\u0627 \u06af\u06cc\u0627 + - \n\n\u0634\u06cc\u062e \u0686\u0644\u06cc \u062d\u06a9\u0648\u2026 https:\/\/t.co\/xSMOueeW3L","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/xSMOueeW3L","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1068124597814525952","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":497658491,"id_str":"497658491","name":"Example(N)","screen_name":"example_org","location":"Pakistan","description":"Official + Twitter account of Pakistan Muslim League (Nawaz)","url":"https:\/\/t.co\/nCK2EmNWqL","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/nCK2EmNWqL","expanded_url":"http:\/\/www.example.org","display_url":"example.org","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1047224,"friends_count":130,"listed_count":463,"created_at":"Mon + Feb 20 06:59:13 +0000 2012","favourites_count":1252,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":true,"statuses_count":31776,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"0E6121","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1053235251139543040\/W4inys7x_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1053235251139543040\/W4inys7x_normal.jpg","profile_link_color":"10570C","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":50,"favorite_count":235,"favorited":false,"retweeted":false,"lang":"ur"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:58 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:57 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:58 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1053235251139543040/W4inys7x_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:57 GMT + Last-Modified: + - Fri, 19 Oct 2018 10:41:46 GMT + Server: + - ECS (fcn/40AD) + Surrogate-Key: + - profile_images profile_images/bucket/0 profile_images/1053235251139543040 + X-Cache: + - HIT + X-Connection-Hash: + - 5de825e58409ca5545855a733e3d3777 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '130' + Content-Length: + - '3685' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:58 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/996714244090417152/2QDJvxkN_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:57 GMT + Last-Modified: + - Wed, 16 May 2018 11:27:28 GMT + Server: + - ECS (fcn/40D6) + Surrogate-Key: + - profile_images profile_images/bucket/9 profile_images/996714244090417152 + X-Cache: + - HIT + X-Connection-Hash: + - ab26b5f1927b74df90b5558525c56a3b + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '137' + Content-Length: + - '4041' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:58 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/996714244090417152/2QDJvxkN_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:58 GMT + Last-Modified: + - Wed, 16 May 2018 11:27:28 GMT + Server: + - ECS (fcn/40D6) + Surrogate-Key: + - profile_images profile_images/bucket/9 profile_images/996714244090417152 + X-Cache: + - HIT + X-Connection-Hash: + - ab26b5f1927b74df90b5558525c56a3b + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '137' + Content-Length: + - '4041' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:58 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Multan,%20Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:58 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:58 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1032216233339445248/sE3rElf-_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:58 GMT + Last-Modified: + - Wed, 22 Aug 2018 10:39:42 GMT + Server: + - ECS (fcn/4185) + Surrogate-Key: + - profile_images profile_images/bucket/1 profile_images/1032216233339445248 + X-Cache: + - HIT + X-Connection-Hash: + - 4aa0559538910d485a94dd09522ec849 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '167' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:58 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/832141531255623681/D-mNs8yL_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:58 GMT + Last-Modified: + - Thu, 16 Feb 2017 08:14:16 GMT + Server: + - ECS (fcn/40FB) + Surrogate-Key: + - profile_images profile_images/bucket/8 profile_images/832141531255623681 + X-Cache: + - MISS + X-Connection-Hash: + - b367a765c588266efba85ef51055c42f + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '262' + Content-Length: + - '2617' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:10:59 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/915014575/zefanjas_new_bigger.png + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/png + Date: + - Mon, 03 Dec 2018 00:10:59 GMT + Last-Modified: + - Thu, 04 Nov 2010 01:42:54 GMT + Server: + - ECS (fcn/4192) + Surrogate-Key: + - profile_images profile_images/bucket/5 profile_images/915014575 + X-Cache: + - MISS + X-Connection-Hash: + - 02c8d274cef9eb9f5d1a5e81be3ff498 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '379' + Content-Length: + - '16298' + body: + encoding: ASCII-8BIT + string: !binary |- + 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TnHF93be/nPNsiAJiPWUXQbvVjZ7q2ob0jq0DWkd2oa0Dm1DWoe2Ia1D25DWoW1I61AT0vYnA9tLjcRf8xJuU1opidc5ERAYYBGY2+xG3WlKjKYGzBhV5oE3afXFQdu6BFwxnmUB+AUws+2ZVsgDjqty1RQzAvB/wAt6058f2lpKtvgvAM9092YXTWQVq3oJeAK4qO9xTkkqrgZ8W+HEYjXAcfJjOFlHVbkkQg74gEDxjjjzstGAYgPxgKeBv3cz+lboC05Yu4TbuxM3k22o2tNJ+YNAj3Ry+PldpgRQBXgK+EZgMqfUwsLE83FSL5i/jPSOUHSytUjtS8AVoAT0AVmax8W3FLAlD6xAAzgF/CvweBTIaYeIhfHngVW5yuLuBzGORVVcIxwAPgEcI7asMpDZ7K7dQkXEvucicBz4icLJopXF+Yzinf3fpYItTcP0fpyekZDQE8eIlIGhBFKWjjao7xg1v0KxCkyqMt3wpv1stofFieOpwv8PVHtnw2ykZRYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTAtMDUtMjBUMDc6NDE6NDArMDA6MDA27VKsAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDEwLTA1LTIwVDA3OjQxOjQwKzAwOjAwR7DqEAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:00 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Porto%20Velho,%20Brasil&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:59 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:00 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/932827443404197888/kFWnZpm2_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:10:59 GMT + Last-Modified: + - Tue, 21 Nov 2017 04:24:08 GMT + Server: + - ECS (fcn/41A0) + Surrogate-Key: + - profile_images profile_images/bucket/7 profile_images/932827443404197888 + X-Cache: + - HIT + X-Connection-Hash: + - cfe326e3b2e846e02b1c51666c7d483a + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '282' + Content-Length: + - '3329' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:00 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Porto%20Velho,%20Brasil&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:10:59 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:00 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/996714244090417152/2QDJvxkN_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:00 GMT + Last-Modified: + - Wed, 16 May 2018 11:27:28 GMT + Server: + - ECS (fcn/40D6) + Surrogate-Key: + - profile_images profile_images/bucket/9 profile_images/996714244090417152 + X-Cache: + - HIT + X-Connection-Hash: + - ab26b5f1927b74df90b5558525c56a3b + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '137' + Content-Length: + - '4041' + body: + encoding: ASCII-8BIT + string: !binary |- + /9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAH4gAFABAACwAdAB5hY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAEkASQMBIgACEQEDEQH/xAAbAAACAwEBAQAAAAAAAAAAAAAEBQADBgIBB//EABkBAAIDAQAAAAAAAAAAAAAAAAMEAAECBf/aAAwDAQACEAMQAAAB+Md8vISnisqM3pjllibLHFVFTS+iJNCxqtOEkwgo6QmnesLAXguSUpnKwE0UXsCNhMqC2Oc6Tk1j6oyr1npBRo83slexjeQtJfPoWR/uhis1eVZii1KcLx+YLEGp4WL5F3VqHazr5x2jY516tDp0lJJaP//EACYQAAICAgICAQMFAAAAAAAAAAIDAQQABRETEhQQFSM0ICIxMjP/2gAIAQEAAQUCwRkirU5YVgkDOg5LZsLlg0+wXLJTPiMV1rCnZZWdsBDr1sEF2ImcrzMU3Vjq45RpZlZYdFyqiu2+vtbT+3H7o2FGG8WGdTPFrp2FiLIZZ7q4qYHC/bXBku7YsrlZ2PsvtMqwiGJ4rsqA3wLNjZhrLHDFCIFXpcqEvUVNmUrITWc2bPtnW603eYy9CBCiNv15sythNhM3XJMdm5J112eomOR6fkMT9ZRlW1IVjF8ibfVXxK82pDFGhC26kArJrLYS2TZWGuyuzqazxUPisnPJMoeckKTlYt8cCFc2ndzPiu80zUVWsMMXxltPWa1UW4Yis7Vsnfpj+dV+NsPydN/Zv+nz/8QAJxEAAgIBAwIGAwEAAAAAAAAAAQIAAxEEEjETISJBUdHw8QUQQoH/2gAIAQMBAT8Bqr3mb6+jhR3hY9IV485bUrIGrE4nUWtNhTvEsHdv6hd9+4nBjKN+xG8MtQt4s5ltjb2VvT6hYlgPOayrSigdMjPzmU2EKUH3Px1oqUhiBKgbque4+f7BpmdGdjxN4csSOZbpywWvOMTVXB2CrwIjsh3LNAF1LbMYPqPaacVjVmnb29pqdUWJVRgfr//EACIRAAIBAwQCAwAAAAAAAAAAAAABAhESIQMQMUETIiNRYv/aAAgBAgEBPwEt7OilNoxT7LKvAoIf6G8mnk0409iDm5OpP5OWTUHwyPOeDyXOiK2ahqO2VUVby9l9Dk+Rbf/EADMQAAEEAAMFBQcEAwAAAAAAAAEAAgMREiExBBMyQVEiI0JhcRAgUpHR4fAUM2KBQ3LB/9oACAEBAAY/AlhaLJUgcf2xZCDYo/DnaZmNHa+icfNRlrqdJw3ojG/Ue4GRPO+dxH/gWNpq8neiikjAoji6puWeF2v+pVgFOt/aPADy6kIR7VHW8Ftz0RY8UfY+aVpLeGxyUJZNvInZl4Rmhb2Xcl+km/y5t/iVK95B8II550jGw4RLkTWgRNUapjfhHn5oOkcc+blFTR3TcF3mR5+zdWQx2dLC5zoj1GY+SDot1KNRh/LQM0TotosXXi+imEjsFkSf3afBAwEjjN0Gj4bUO8a17xf7enzQfOwhp8Id2nfZSdzI6wQztaLhTHkQ5O4aTtp3Z2e3V2RYTw6SF2d4zeILfN2nesbkQ5l1ajdOwlwOrcmn8pDeGIscMTGEa9S4q/0cFAZEGx+eq70tZ/LAmuecTAfmuBiiMON9tGJx0tbt0o2eCXNpdln5IwRmZ2dEyPq/6CpzafWhcS77IbUbYCaojmmSNiblkHYAbGv1QfuYyOrOyjLBs0bjfERbmev1URpu8Js5LgCk2dzWljs9MwVC90hf8AuyExjcI2jUuHg+63zs+Y8ytkgaeBtu9SnRyda8wpRiMsp4ezlXVYmOIVPgZv3E9qs/YH1Y5jqt9stOjeLLfqg4lzmni6ouEXdQmosWp/ChiNm7Ki8zZQ3seKMDttblZ6okx0eTeQV8uXtNZg6hYXzbnpkjEQXRHJtJjcTarVR95nG3hHiKEu0yk58HMrA1rYoryY33iipPRO9fc//EACYQAQACAgEDBAIDAQAAAAAAAAEAESFBMVFhgRBxkaGx0SDB8OH/2gAIAQEAAT8hhZGMAZZUSw5NcnvKlZyLKwAUZkXNKYoKVjpB4bo5HpcHwHpps+fUK0SkQVaG9kXqpS6rmOQKCHxvonFdo2LLZwgMoByhxBYA01XwHXzB8RW5SwcPs6+hLRQpydxYITpOz3lid9g10fP5siEKsET23zMVU6MEY/co1yValywQKv069W1dXxDpbiWvt2lF5oZhb9FJWRg5SMqDwfyQQO7ZQb7GINY8hR4PL6hcNExVCVrKRvxK2DoBvvcDrmBq0K5zfESk/NotLf6TcXgMkxZWZ3sUbUvpYpiplAJfslKhFo/RMKvY9GL69oOTe1oI1TboMqTJcW+gUbv/AJAwDifhmi984ivpzgZJq6hvHaUV2ueCf7v+T+nEVCL51iqjsyx0nkBL5D5YwVnqlvha889pQuJXMeQd8fcI0KuAl2rWniDjO5lPZ14SOw0EXhAPb+0DHGJxDXoGLwxbaVQCw4D2CtTPqlFaHgvfdqGZ2TL/AJxzHDuMTi9b8VEbXpZy2J/twXJC1ztmWLBizZE2X7DSsPpaX1hCXrQtft2l1r2Lxl1fHOGrp+zM/ime8FDaHU4/c2Vy37e/mY/DNmDqsbXBXq4wql3FyUuTeAjEpkGeZYlzgZQaKxtW68sOTFqvgrRDnPIeD9/x4J+b/Pjn/9oADAMBAAIAAwAAABCsZ3HVI+5SX0kgB4oJvKvc3lTz/8QAIBEBAAEEAwADAQAAAAAAAAAAAREAITFBUWFxgZHREP/aAAgBAwEBPxCQlgM/h3WmjlSVJtDq2bap2QE94Kim2uzYcRuFcYye0ioc0mYAVS4zPyJBzS0smTju3PFFUoWXZOZ3v5pFysZZD5OqgSEyMdQTjdJGmzHMApz9WlpxDAjRcWNat3Vx57ZiLwZvi9r4tUHAMrOhg559mpHwyGcmL8WtnmneQxGwkR6HGs9UIKRZzME61GHnNatkW02x9UtBDsTte+My6AmmQk4GInlfaNpCbqfIQymTY4XnqgMVO5Uyt6n7NTuqzdV9XXVj+f/EACURAQACAQQABgMBAAAAAAAAAAEAESExQVHwEHGBscHRYZGh4f/aAAgBAgEBPxALalkymKPdpbV4Wd0du/f7mI4PDv5R1vHz3tQK29NpYriwNXuunvBNmi9c/efaLegONf8AOsYDFXB/caxDY8ozBwHZNjj8/LMAHAB6dZTY+K29ZY3GIJTLDVwxpdzL1l8P/8QAJhABAAIDAQABBAICAwAAAAAAAREhADFBUWEQcZGhgbHB8NHh8f/aAAgBAQABPxDElxbk+DAQpJW6F7AaJusjMQnFtzeiIwzACgBUlic8y9NYRKJexhWWQfVo0134xJb41k8FJ8n1FlK6wTvpwgNC1FSu5rA/wHE6i9PR4mJpImWbKDoS+HymBdRWw34etZmP5YdEflgdDZRf8MawhQQLuP5sciKOwmyweifR+cBY3GPaI/nGWMCSSIOBunuEOiByhYp2dvJnJhuI7bIAfFJ2srQ0NBAhyoJsucRGLF2YfLkIthMeGS0IPZ6baSLhau8qE2huHWgjeGwNBAoBce/ZyMiVoIoICsl3gB8LMs7N0a1P2wk3i/pNMvYL7OWiaEuSBLZU+iY3j1hm6I6LTIOL0DEx/KpA6CAwpJ2WmNUt73AbAAoCPsbK1nXvKRB4CFEHcnQK4kwIekdz/ccPPxM9E4CUvpg5eAfUSIHGxfjCYbwLWIBij4/nJmZdFhAnk+UCrwYKmiNp5hUmFGKw2RX1/AQCJGYKhjAxkkxXDdbF9y2HJ4EHdDwMjLIZABkNpiZuM/0nAsg6m4zEXWmXDe/PSkO7bIN/jIJhH6PKzoKZNswjxAB4ai74Mf8ATWMBCCAKdGlY06zuUGgs0DT88nc0IXdIVfKTI7SSMhkEBNAXpjFWOW3qSNra1n/uH/GRGVKi7JGDj98Huy7hMp4y5dsZixelLdAgWqR7OkVF3O6K/g7mmjlFH3QA+MHryCeCE3DNd8YwcC6lKNx5UOW78EhTY+j5rEpjEFRo0XyJgyflyLA2HqXZPHx4xiaIAKDMBIlPdBhsjCCEoNzLvbj1BUed8E9HldMkn3QFAv7X85LohQxLEfx+2NXviFDXJNQ9l7TmNgJH1byuQIgijv8A1wyfpQyWWh6ePz/ZkhbUJPRD+zK17ZUFX2SWd5OlEtmFbTZWBCYwdIUAROicXiA1A/IFK8wOBoz7636t39XHP2DP1cfrmfvf6z99/f0Pp//ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:00 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Multan,%20Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:00 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:00 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1032216233339445248/sE3rElf-_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:00 GMT + Last-Modified: + - Wed, 22 Aug 2018 10:39:42 GMT + Server: + - ECS (fcn/4185) + Surrogate-Key: + - profile_images profile_images/bucket/1 profile_images/1032216233339445248 + X-Cache: + - HIT + X-Connection-Hash: + - 4aa0559538910d485a94dd09522ec849 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '167' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:00 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/996714244090417152/2QDJvxkN_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:00 GMT + Last-Modified: + - Wed, 16 May 2018 11:27:28 GMT + Server: + - ECS (fcn/40D6) + Surrogate-Key: + - profile_images profile_images/bucket/9 profile_images/996714244090417152 + X-Cache: + - HIT + X-Connection-Hash: + - ab26b5f1927b74df90b5558525c56a3b + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '137' + Content-Length: + - '4041' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:01 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Multan,%20Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:00 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:01 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1032216233339445248/sE3rElf-_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:00 GMT + Last-Modified: + - Wed, 22 Aug 2018 10:39:42 GMT + Server: + - ECS (fcn/4185) + Surrogate-Key: + - profile_images profile_images/bucket/1 profile_images/1032216233339445248 + X-Cache: + - HIT + X-Connection-Hash: + - 4aa0559538910d485a94dd09522ec849 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '167' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:01 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Berlin&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:00 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:01 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/851468284230848517/HAmK9OTy_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Md5: + - UTnEYS8uGfA44+ycFWh1lA== + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:00 GMT + Last-Modified: + - Mon, 10 Apr 2017 16:11:53 GMT + Server: + - ECS (fcn/419D) + Surrogate-Key: + - profile_images profile_images/bucket/6 profile_images/851468284230848517 + X-Cache: + - HIT + X-Connection-Hash: + - 31db5dca3ecf3841ffcf55f854b6ccb1 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '141' + Content-Length: + - '2617' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:01 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Berlin&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:01 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:01 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1066307515649003520.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="db0fdd3eedd9c9a4c4a7dea0f6dd3cc9", + oauth_signature="5OrIGadCeuoU%2BpDkNkUYviu0awo%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795861", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2802' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:11:01 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:11:01 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379586119920082; Expires=Wed, 02 Dec 2020 00:11:01 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_p7ip8mWYO9v16Fjh+pQ/Bw=="; Expires=Wed, 02 Dec 2020 + 00:11:01 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - 579533a6444ca2172dd39b35ed0bc925 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '892' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '259' + X-Transaction: + - 00105f0300d5e5a7 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Sat Nov 24 12:28:17 +0000 2018","id":1066307515649003520,"id_str":"1066307515649003520","text":"@fexample + Twitter hat k\u00fcrzlich seine API umgestellt. Wir haben die n\u00f6tigen + \u00c4nderungen umgesetzt und rollen sie der\u2026 https:\/\/t.co\/m5YhRvu9TV","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"fexample","name":"fexample","id":280647844,"id_str":"280647844","indices":[0,10]}],"urls":[{"url":"https:\/\/t.co\/m5YhRvu9TV","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1066307515649003520","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"source":"\u003ca + href=\"https:\/\/zammad.com\" rel=\"nofollow\"\u003eZammad Support\u003c\/a\u003e","in_reply_to_status_id":1066298300649877504,"in_reply_to_status_id_str":"1066298300649877504","in_reply_to_user_id":280647844,"in_reply_to_user_id_str":"280647844","in_reply_to_screen_name":"fexample","user":{"id":785412523193425920,"id_str":"785412523193425920","name":"Zammad + HQ","screen_name":"zammadhq","location":"","description":"Helpdesk and Customer + Support made easy. Open Source for download or to go with SaaS. #zammad","url":"https:\/\/t.co\/XITyrXmhTP","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/XITyrXmhTP","expanded_url":"http:\/\/zammad.com","display_url":"zammad.com","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":437,"friends_count":514,"listed_count":20,"created_at":"Mon + Oct 10 09:31:52 +0000 2016","favourites_count":280,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":441,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/785412960797745152\/wxdIvejo_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/785412960797745152\/wxdIvejo_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/785412523193425920\/1476097853","profile_link_color":"31B068","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":true,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"de"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:01 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/785412960797745152/wxdIvejo_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:01 GMT + Last-Modified: + - Mon, 10 Oct 2016 09:31:36 GMT + Server: + - ECS (fcn/41AF) + Surrogate-Key: + - profile_images profile_images/bucket/7 profile_images/785412960797745152 + X-Cache: + - MISS + X-Connection-Hash: + - 37f65b8a5274e5073927dbe63ad53c32 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '454' + Content-Length: + - '2617' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:02 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1066298300649877504.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="12ed1f52923c07c7a35ea78d2d177e7d", + oauth_signature="UEKkeqCiwZnRNZK2xL9yFh2jYLA%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795862", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2500' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:11:02 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:11:02 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379586236068908; Expires=Wed, 02 Dec 2020 00:11:02 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_OSXYuikjlVdq9R/LFc1Nlg=="; Expires=Wed, 02 Dec 2020 + 00:11:02 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - 12744059e6a4d948288866180fa2fcbc + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '891' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '141' + X-Transaction: + - '0054282d0032faba' + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Sat Nov 24 11:51:40 +0000 2018","id":1066298300649877504,"id_str":"1066298300649877504","text":"@zammadhq + Ist es im Moment eigentlich m\u00f6glich, Twitter DMs via Zammad zu Verwalten?","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"zammadhq","name":"Zammad + HQ","id":785412523193425920,"id_str":"785412523193425920","indices":[0,9]}],"urls":[]},"source":"\u003ca + href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":785412523193425920,"in_reply_to_user_id_str":"785412523193425920","in_reply_to_screen_name":"zammadhq","user":{"id":280647844,"id_str":"280647844","name":"fexample","screen_name":"fexample","location":"Berlin","description":"ITler, + Autist und Podcaster |\nim CCC Umfeld aktiv | er\/he","url":"https:\/\/t.co\/lqrFmdOsAP","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/lqrFmdOsAP","expanded_url":"http:\/\/fexample.org","display_url":"fexample.org","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":456,"friends_count":701,"listed_count":20,"created_at":"Mon + Apr 11 19:18:56 +0000 2011","favourites_count":24752,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":13973,"lang":"de","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/851468284230848517\/HAmK9OTy_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/851468284230848517\/HAmK9OTy_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/280647844\/1454753210","profile_link_color":"0F125C","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"de"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:02 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Berlin&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:02 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:03 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/851468284230848517/HAmK9OTy_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Md5: + - UTnEYS8uGfA44+ycFWh1lA== + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:02 GMT + Last-Modified: + - Mon, 10 Apr 2017 16:11:53 GMT + Server: + - ECS (fcn/419D) + Surrogate-Key: + - profile_images profile_images/bucket/6 profile_images/851468284230848517 + X-Cache: + - HIT + X-Connection-Hash: + - 31db5dca3ecf3841ffcf55f854b6ccb1 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '141' + Content-Length: + - '2617' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:03 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/996714244090417152/2QDJvxkN_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:02 GMT + Last-Modified: + - Wed, 16 May 2018 11:27:28 GMT + Server: + - ECS (fcn/40D6) + Surrogate-Key: + - profile_images profile_images/bucket/9 profile_images/996714244090417152 + X-Cache: + - HIT + X-Connection-Hash: + - ab26b5f1927b74df90b5558525c56a3b + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '137' + Content-Length: + - '4041' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:03 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Mexico&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:03 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:03 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/937091164951289856/tfIoqXYr_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:03 GMT + Last-Modified: + - Sat, 02 Dec 2017 22:46:38 GMT + Server: + - ECS (fcn/419F) + Surrogate-Key: + - profile_images profile_images/bucket/9 profile_images/937091164951289856 + X-Cache: + - HIT + X-Connection-Hash: + - f6081cc1378ce9866dd1a616a4e2dca4 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '138' + Content-Length: + - '3507' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:03 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Mexico&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:03 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:03 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1052285678342438912/V6LP8BoX_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:03 GMT + Last-Modified: + - Tue, 16 Oct 2018 19:48:30 GMT + Server: + - ECS (fcn/40D6) + Surrogate-Key: + - profile_images profile_images/bucket/4 profile_images/1052285678342438912 + X-Cache: + - MISS + X-Connection-Hash: + - d83d3cbfeece2886f841bc349e83136e + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '184' + Content-Length: + - '2617' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:04 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Multan,%20Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:04 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:04 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1032216233339445248/sE3rElf-_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:04 GMT + Last-Modified: + - Wed, 22 Aug 2018 10:39:42 GMT + Server: + - ECS (fcn/4185) + Surrogate-Key: + - profile_images profile_images/bucket/1 profile_images/1032216233339445248 + X-Cache: + - HIT + X-Connection-Hash: + - 4aa0559538910d485a94dd09522ec849 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '167' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:04 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Multan,%20Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:04 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:04 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1032216233339445248/sE3rElf-_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:04 GMT + Last-Modified: + - Wed, 22 Aug 2018 10:39:42 GMT + Server: + - ECS (fcn/4185) + Surrogate-Key: + - profile_images profile_images/bucket/1 profile_images/1032216233339445248 + X-Cache: + - HIT + X-Connection-Hash: + - 4aa0559538910d485a94dd09522ec849 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '167' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:04 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=%E4%B8%8B%E7%94%BA%20,Tokyo,%20Japan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:04 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:05 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/544701031771164674/9EszjZW4_bigger.png + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/png + Date: + - Mon, 03 Dec 2018 00:11:04 GMT + Last-Modified: + - Tue, 16 Dec 2014 03:48:20 GMT + Server: + - ECS (fcn/4186) + Surrogate-Key: + - profile_images profile_images/bucket/0 profile_images/544701031771164674 + X-Cache: + - MISS + X-Connection-Hash: + - fc2f906720d336731983d888b5d084c1 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '169' + Content-Length: + - '8135' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:05 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=%E4%B8%8B%E7%94%BA%20,Tokyo,%20Japan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:04 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:05 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Somewhere,%20Germany&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:05 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:05 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/993875791921516544/KxtPpRLJ_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:05 GMT + Last-Modified: + - Tue, 08 May 2018 15:28:28 GMT + Server: + - ECS (fcn/40FD) + Surrogate-Key: + - profile_images profile_images/bucket/9 profile_images/993875791921516544 + X-Cache: + - HIT + X-Connection-Hash: + - c0c58bbca9c35859f83d5474f892cb09 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '567' + Content-Length: + - '2439' + body: + encoding: ASCII-8BIT + string: !binary |- + /9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAH4gAFAAgADwAeAB5hY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAEkASQMBIgACEQEDEQH/xAAcAAACAgMBAQAAAAAAAAAAAAAABgQFAgMHAQj/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAHsoAHiuNJQxBpNG8AAAI69dpBb2qnuHCfW2QAAAQOZdW4CNujFWO52y2yAAeI3NU4s2Xnu0d7LNaKV5Q8T6IavlW9FvA8MNMrWRp8SwNOeGw9hzYB//8QAJxAAAQQBAwMDBQAAAAAAAAAAAQIDBAUAEBESEyAxBiEiFBUwMzT/2gAIAQEAAQUC/ITsG5r0pYcO8t6XHEdwPMdsn+ZGyGQr5NHcV/tD7bBfThWbMhWNtPmPTsykOVp3jdti0XoMuy+LUxYyHZ9N2oSpNf2vOtstz3k/cmpDHNx0u2NTcQZzWpIAu/UUaIzZT5E6RR9CZBXUzjJs2Wqmn5bCp9TS4zFXfQZxy8uZNg6ScVvu064y7VWjEvL51Ts84TiVcc+vl4ToRhBGe6TyWpRwDbB55nUYfIyP+weTg0//xAAUEQEAAAAAAAAAAAAAAAAAAABA/9oACAEDAQE/AU//xAAUEQEAAAAAAAAAAAAAAAAAAABA/9oACAECAQE/AU//xAA1EAACAQICBwMKBwAAAAAAAAABAgMAEQQhEBITICIxQRQykSNRUmFicXKBscEwNEJTgpKh/9oACAEBAAY/AvxLmi6eTw4PD53rnXaITtEHfjP2pJQCAwvnvSfAaRR6I0WqP3b0rezQELotrdL1nINrb5VeaVWz5Wr4WI/3emiXvMhtQUZM2XurU1Ra1qeI3uvX1VHrc24vHPeZ5XCqouSaXFYa/Z5GLJcUCdQLztapZip1V4mUZcIpNm4jf9tsjuXNMuEkjnxHm6eNbTESFj9KODlNpImLKetjXDIhX0r1Igba4jE8Bah6qVJVEye0c/GglzDKf0v1+ehhrlIL8MY++i9CaI2YVZzqSgZg9asxyQcqt0qwoV+bm/udy60JEyIzrXYlmPM7p3f4n6aRo//EACYQAQACAQMEAgEFAAAAAAAAAAEAETEhQVEQYXGBIMGxMJGh0fD/2gAIAQEAAT8h/UJEoC1hJ6Uv5uxN7fvN4oa3TlbQUSwZHyKiZ+iEYAND104XNRIadV8vZGmLzpKEQAtL8xAAOzfEN21Db5uafdgemx8ia0B5VCvbxhui7yI1/cbXJ0W+yXru56cn7fJ4mWMBmVlekNdNJXm/UEgstzR8gLXBwcS5vlXg+OfXwQIAaqwIYaDae6NJZtBAwDgNiOqjl3FnuDC9aOleoG4Yw23rtBEO9gQtiwJxGweG87YPSoL6hWnPJmLAKF8RZu5IQFstB6cw1c0PC4bNm7vLE9ESgejzOsdcz3E/AEG22YbMWssDeNxllS95ge877PtDHRlmT7n+Xu6OEy8un//aAAwDAQACAAMAAAAQ880088UA088gUc8w4c8cMkcgQ//EABQRAQAAAAAAAAAAAAAAAAAAAED/2gAIAQMBAT8QT//EABQRAQAAAAAAAAAAAAAAAAAAAED/2gAIAQIBAT8QT//EACYQAQACAgEDAwQDAAAAAAAAAAERIQAxQVFhcSCBoRCRsfAwwfH/2gAIAQEAAT8Q/kD4sjQG3GsMRtdKX47euDDf7singSdO95HJZzhjQKiQ0+rcKEuLnh3zgcUyh0nEsCIjzOCOAUDRbXqusJLQaae+BmKLiIG4BRi5IxBlw7xj3hGD7ID/ABijcvpaPfz6pKMv3g90DJWxMsoE9q3eSESo6krmjJNzi6sFRm2kp884rsOfCGMjwPVA1ZQDld47dcAZmp8t8nUANyMGRfVHTGthgpzheURpJRW3Bow041HA9H4egk7yEAdV4wyCYrWnYDcTcRWEJb2lIQVUaNu5xkzsoCi6kSE6RhPVCJi7YTN8ZzSQDIYtgDyqLxkqMGYdQVGb1v8AisLSHEj5wS1OKHQKztT2ycDagRhGod27o4x08DIKVypknqdMRZkqX79s04AA4X5dt4jwC6Td94icNkqHn2YhiigaMQQUj75+p/3liZZhxBj2JipZ3DE5pjfVjEBhyJpO04yq5bKotcWwZMJ1a25Jdj/Yw/XxmvN36L434Zsx9/g+j8d9P//ZICAgICAg + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:05 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Somewhere,%20Germany&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:05 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:05 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1065690447354445826.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="df1d4b0020304d719b581ad2a89ac722", + oauth_signature="ZVjS8VWcWdYXZpr2I3ZX56DOWTE%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795865", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2746' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:11:05 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:11:05 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379586536405324; Max-Age=63072000; Expires=Wed, 2 Dec 2020 + 00:11:05 GMT; Path=/; Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_MZD182hfYWStgAdGdUaJ5A=="; Max-Age=63072000; Expires=Wed, + 2 Dec 2020 00:11:05 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - b7b8c1e2dea450e71b21fbd4b9936f5f + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '890' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '151' + X-Transaction: + - '009729f6001fb087' + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Thu Nov 22 19:36:16 +0000 2018","id":1065690447354445826,"id_str":"1065690447354445826","text":"@example + Ich w\u00fcrde mir aktuell Zammad angucken.","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"example","name":"Michael + Smith","id":118674790,"id_str":"118674790","indices":[0,9]}],"urls":[]},"source":"\u003ca + href=\"http:\/\/tapbots.com\/tweetbot\" rel=\"nofollow\"\u003eTweetbot for + i\u039fS\u003c\/a\u003e","in_reply_to_status_id":1065689418353307648,"in_reply_to_status_id_str":"1065689418353307648","in_reply_to_user_id":118674790,"in_reply_to_user_id_str":"118674790","in_reply_to_screen_name":"example","user":{"id":19840431,"id_str":"19840431","name":"Falk + Stern","screen_name":"wrf42","location":"ZZ9 Plural Z Alpha, Third Rock from + the Central Star","description":"I \u2665 IP packets \u2022 @example_ort \u2022 + opinions are my own \u2022 DM7FS \u2022 https:\/\/t.co\/KuzUv395IN","url":"https:\/\/t.co\/e7or64Jxh7","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/e7or64Jxh7","expanded_url":"http:\/\/pants.fourecks.de\/","display_url":"pants.fourecks.de","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/KuzUv395IN","expanded_url":"http:\/\/tools.ietf.org\/html\/rfc1925","display_url":"tools.ietf.org\/html\/rfc1925","indices":[62,85]}]}},"protected":false,"followers_count":584,"friends_count":485,"listed_count":21,"created_at":"Sun + Feb 01 00:58:25 +0000 2009","favourites_count":1543,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":12886,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"709397","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme6\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme6\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/608727351455809536\/JHaWzvF6_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/608727351455809536\/JHaWzvF6_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/19840431\/1499724219","profile_link_color":"33178F","profile_sidebar_border_color":"86A4A6","profile_sidebar_fill_color":"A0C5C7","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":1,"favorited":false,"retweeted":false,"lang":"de"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:05 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=ZZ9%20Plural%20Z%20Alpha,%20Third%20Rock%20from%20the%20Central%20Star&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:05 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:06 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/608727351455809536/JHaWzvF6_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Md5: + - F1aJw9nod7eADmrBUW27ow== + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:05 GMT + Last-Modified: + - Wed, 10 Jun 2015 20:06:04 GMT + Server: + - ECS (fcn/41AC) + Surrogate-Key: + - profile_images profile_images/bucket/4 profile_images/608727351455809536 + X-Cache: + - HIT + X-Connection-Hash: + - 9fbcba5c976a1f20dd720b0d93219e4b + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '205' + Content-Length: + - '2973' + body: + encoding: ASCII-8BIT + string: !binary |- + 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BUkiEeo+6P8Aq+mzOKWggzSKQgxmKyyxyje13sLHwsd+BxcVChI+uYgoVJbbhY2OJSXM89Gb5Nk1NWy0TmljianhcARuSQSw5lbNY774e1WcUFDn/qWVJGy8U5pJZ3JJDta7E95ubnlfHNvQuwMj1+R/cIjVBJNojCxxgGSQCwB7hfnbfAec5dUV2VMKWamBv8NFLOkZK8rkiwI78AV1TJB0dOR+k6aunnmiqiT22IBZDbvDCwuOWJypqPSIKetnC+linaBpG3vZ7A795Ust/wA3niq6CWBgCrDpinN6SnFe0WXBChkCqVbskkAXBPdqva+Kno90QqsqaOvzLSkvWCNYlYHSHupLHhwPDEzIiyh9rpqK+7FHL0kfMOjKZdKh64oqSS6zqJUjcADvsMdKxsTD/EbSCzBgP3KabOvQMuy2V6d5oZVCySodkIFvfc3+TBfraj/DH76f1Yi+vr5snhy14h6NEAAWUIeJtuTe+/dgf1RP+CP4zfVhXzCesceK/pn+/qT085dlhZy8krapX43xtowZlnqjdU1BIx5d+FkJZzNMSAT2QeQwxiqC1OiojmNBy4+7GjMmdjsMpJ6o9IKOsjl01CSq7TbCwHF2v4cSeOKHMM4k6SyQUooUpDU1CtLKZiVubgkKfZuDviRXt5nSRb7tqa/y4fFVvcE32OxxkvwMOporXVhiZtJJUZhWwQU3pEwkkWaaMO8aAoqhL7A73J8Dywor2hSiiUm0q6YmB31qLsredywPPbxx9eNrGTRpkLXIU7C5uRhdnOpdLl7KNxtw54leeYyR1+kzCCYmGMDi74bZJXLSVklPNCJFkbsAuVAbxtvvwxP5aGEkRbgLt8m2DZideomznvGNViB18TEUk1v1LZMxmppo54oqWnkR1KtGrM3HmxNri4vbvwf/AHgVH5PL8rfVidoKwZnRBztKp0uFNrHn78FdW34T/vY5LVJuOJ1wNGqZJQU8FPT9pe0OHffBcuV11NSCseNViY3aIntKD98fqx6l+M6L9cuKvOf8qr/Rb5sbrbmRgo9Zh4/HV0LtIEswrEqVOkC1iRfb7Xw+0GNh1lSsgKmwi7JvcWve4A3wuq/irLv2dv8AtfHn9s/ofSuGWKDKo60RjIJVXVFDM5B3UvGwPvFsLsxjmmptTw6F79bD6Mb6X4vHk3znGmr+K08/pOASsAxjnRs0eo6mLLY8weFxAACJNQNh3ErxAwNLOeth1rZlbdRvtbj5YuR8UT/sp/44hJfapP1f0DB02mzdi76RXmRlllWMvrwST1Elkfw5N9ueKvrE5nELN/p3/ROKDCuRWCQY7jWkLk//2SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:06 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=ZZ9%20Plural%20Z%20Alpha,%20Third%20Rock%20from%20the%20Central%20Star&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:05 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:06 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1065689418353307648.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="2dbf57fffac364cfd3d3bb63b01ca49f", + oauth_signature="DoKz2xUY3qPs%2Bnscylkyemx7acY%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795866", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2803' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:11:05 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:11:05 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379586586228954; Max-Age=63072000; Expires=Wed, 2 Dec 2020 + 00:11:05 GMT; Path=/; Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_+/OoCKlEZ0cKyyakBbiF3Q=="; Max-Age=63072000; Expires=Wed, + 2 Dec 2020 00:11:05 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - b2a163727c924ff41806ca40d2d38ea2 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '889' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '141' + X-Transaction: + - 0025e37d002a1248 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Thu Nov 22 19:32:11 +0000 2018","id":1065689418353307648,"id_str":"1065689418353307648","text":"Aja, + wieder was gelernt.\n\n\"Zuk\u00fcnftig werden wir neue OTRS-Versionen zun\u00e4chst + nur unseren zahlenden Kunden, und erst\u2026 https:\/\/t.co\/IRfIEfrN7k","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/IRfIEfrN7k","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1065689418353307648","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"source":"\u003ca + href=\"http:\/\/twitter.com\/#!\/download\/ipad\" rel=\"nofollow\"\u003eTwitter + for iPad\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":118674790,"id_str":"118674790","name":"Michael + Smith","screen_name":"example","location":"Somewhere, Germany","description":"A + taste of #austria in lovely #nuremberg. @example, @example, #lego, #drageekeksi, + #perryrhodan and more.","url":"https:\/\/t.co\/9bqAc15vHA","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/9bqAc15vHA","expanded_url":"https:\/\/example.com\/example\/atasteofexample","display_url":"example.com\/example\/atast\u2026","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":1345,"friends_count":404,"listed_count":182,"created_at":"Mon + Mar 01 12:24:00 +0000 2010","favourites_count":29311,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":41488,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/993875791921516544\/KxtPpRLJ_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/993875791921516544\/KxtPpRLJ_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/118674790\/1530637123","profile_link_color":"0084B4","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":true,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":2,"favorite_count":2,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"de"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:06 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Somewhere,%20Germany&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:06 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:06 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/993875791921516544/KxtPpRLJ_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:06 GMT + Last-Modified: + - Tue, 08 May 2018 15:28:28 GMT + Server: + - ECS (fcn/40FD) + Surrogate-Key: + - profile_images profile_images/bucket/9 profile_images/993875791921516544 + X-Cache: + - HIT + X-Connection-Hash: + - c0c58bbca9c35859f83d5474f892cb09 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '567' + Content-Length: + - '2439' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:06 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Multan,%20Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:06 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:06 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1032216233339445248/sE3rElf-_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:06 GMT + Last-Modified: + - Wed, 22 Aug 2018 10:39:42 GMT + Server: + - ECS (fcn/4185) + Surrogate-Key: + - profile_images profile_images/bucket/1 profile_images/1032216233339445248 + X-Cache: + - HIT + X-Connection-Hash: + - 4aa0559538910d485a94dd09522ec849 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '167' + Content-Length: + - '3151' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:06 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1065643822095446016.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="43788c0bf65af0ea0e0e59b029a98a58", + oauth_signature="8H%2Bw00OP0m9rjOpLRdQia%2BOjtIo%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795866", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '4445' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:11:06 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:11:06 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379586658065606; Expires=Wed, 02 Dec 2020 00:11:06 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_L5115LsYmHOzsuzVVaIZNQ=="; Expires=Wed, 02 Dec 2020 + 00:11:06 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - ff7137ae964095853eb47f508634330a + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '888' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '136' + X-Transaction: + - 00d6e40000f35116 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Thu Nov 22 16:31:00 +0000 2018","id":1065643822095446016,"id_str":"1065643822095446016","text":"@IExample + \u0627\u0633 \u0644\u0691\u06a9\u06cc \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0648 + \u0627\u062c \u06af\u0644\u06af\u062a \u0645\u06cc\u06ba \u0628\u0644\u0679 + \u067e\u0631\u0648\u0641 \u0634\u06cc\u0634\u06d2 \u0645\u06cc\u06ba \u0628\u06cc\u0679\u06be + \u06a9\u0631 \u0628\u06be\u067e\u06a9\u06cc\u0627\u06ba \u0645\u0627 \u0631\u062a\u0627 + \u06c1\u06d2 https:\/\/t.co\/IHTy1S6LIL","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"IExample","name":"Imran + Khan","id":122453931,"id_str":"122453931","indices":[0,13]}],"urls":[],"media":[{"id":1065643762477686785,"id_str":"1065643762477686785","indices":[87,110],"media_url":"http:\/\/pbs.twimg.com\/media\/DsntWx-X4AEVPbi.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DsntWx-X4AEVPbi.jpg","url":"https:\/\/t.co\/IHTy1S6LIL","display_url":"pic.twitter.com\/IHTy1S6LIL","expanded_url":"https:\/\/twitter.com\/idreesexample\/status\/1065643822095446016\/photo\/1","type":"photo","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":854,"h":480,"resize":"fit"},"small":{"w":680,"h":382,"resize":"fit"},"large":{"w":854,"h":480,"resize":"fit"}}}]},"extended_entities":{"media":[{"id":1065643762477686785,"id_str":"1065643762477686785","indices":[87,110],"media_url":"http:\/\/pbs.twimg.com\/media\/DsntWx-X4AEVPbi.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DsntWx-X4AEVPbi.jpg","url":"https:\/\/t.co\/IHTy1S6LIL","display_url":"pic.twitter.com\/IHTy1S6LIL","expanded_url":"https:\/\/twitter.com\/idreesexample\/status\/1065643822095446016\/photo\/1","type":"photo","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":854,"h":480,"resize":"fit"},"small":{"w":680,"h":382,"resize":"fit"},"large":{"w":854,"h":480,"resize":"fit"}}}]},"source":"\u003ca + href=\"https:\/\/mobile.twitter.com\" rel=\"nofollow\"\u003eTwitter Lite\u003c\/a\u003e","in_reply_to_status_id":1065640781103448066,"in_reply_to_status_id_str":"1065640781103448066","in_reply_to_user_id":122453931,"in_reply_to_user_id_str":"122453931","in_reply_to_screen_name":"IExample","user":{"id":705679307683864576,"id_str":"705679307683864576","name":"idrees + aAlzeyadi","screen_name":"idreesexample","location":"\u067e\u0627\u06a9\u0633\u062a\u0627\u0646. + pakistan","description":"\u00a0Idrees Alzeyadi \u00a0\r\n\u03c1\u03b1\u043a\u03b9\u0455\u0442\u03b1\u0438\u03b9\ud83c\uddf5\ud83c\uddf0 + \r\nlove Myself\u2764\ufe0f\r\n 01jan \u043c\u0443 \u2202\u03b1\u0443\ud83c\udf82\r\n + f\u03c3\u03c3\u0442\u0432\u03b1\u2113\u2113&cricket \r\n\u26bd \u043c\u0454\u0455\u0455\u03b9\r\n + \u2764\ufe0f sports \u2113\u03c3\u03bd\u0454\u044f\r\n \u2764\ufe0fpolitical + view\ud83d\udc49imran khan\u2764\u270c","url":"https:\/\/t.co\/czkzktBJ7X","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/czkzktBJ7X","expanded_url":"http:\/\/www.example.com\/idreesExample","display_url":"example.com\/idreesExample","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":2315,"friends_count":1946,"listed_count":0,"created_at":"Fri + Mar 04 09:00:32 +0000 2016","favourites_count":4372,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":false,"statuses_count":364,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"F5F8FA","profile_background_image_url":null,"profile_background_image_url_https":null,"profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1065873213748584448\/QClfFmGl_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1065873213748584448\/QClfFmGl_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/705679307683864576\/1542958866","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":true,"default_profile":true,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":3,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"ur"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:07 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=%D9%BE%D8%A7%DA%A9%D8%B3%D8%AA%D8%A7%D9%86.%20pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:06 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:07 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1065873213748584448/QClfFmGl_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:06 GMT + Last-Modified: + - Fri, 23 Nov 2018 07:40:31 GMT + Server: + - ECS (fcn/40D7) + Surrogate-Key: + - profile_images profile_images/bucket/4 profile_images/1065873213748584448 + X-Cache: + - MISS + X-Connection-Hash: + - db07615a746149cf45bdbbedaf7cc931 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '131' + Content-Length: + - '3507' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:07 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=%D9%BE%D8%A7%DA%A9%D8%B3%D8%AA%D8%A7%D9%86.%20pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:07 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:07 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1065640781103448066.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="813d8700f25ff78f741b2c778b312cf7", + oauth_signature="Ha0OSsfG5yFKzMdNbRHC2Fn9tKo%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795867", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2596' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:11:07 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:11:07 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379586724246848; Expires=Wed, 02 Dec 2020 00:11:07 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_OA+dA8O8hzvl3z8m22QRTQ=="; Expires=Wed, 02 Dec 2020 + 00:11:07 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - b9bed8cd479ebba741a875dae276bb09 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '887' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '148' + X-Transaction: + - 00c36c4100d7cd91 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Thu Nov 22 16:18:55 +0000 2018","id":1065640781103448066,"id_str":"1065640781103448066","text":"I + want to express my heartfelt thanks to Prime Minister Mahathir Mohamad for + his warm hospitality & I want to thank\u2026 https:\/\/t.co\/qUVkNiIqw9","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/qUVkNiIqw9","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1065640781103448066","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[121,144]}]},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":122453931,"id_str":"122453931","name":"Imran + Khan","screen_name":"IExample","location":"Pakistan","description":"Prime + Minister of Pakistan","url":"https:\/\/t.co\/zwxvk5i5Xu","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/zwxvk5i5Xu","expanded_url":"http:\/\/insaf.pk","display_url":"insaf.pk","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":8753744,"friends_count":19,"listed_count":8089,"created_at":"Fri + Mar 12 19:28:06 +0000 2010","favourites_count":0,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":5685,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"A7CCAB","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1034759395622756352\/G3QDI4pv_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1034759395622756352\/G3QDI4pv_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/122453931\/1534522318","profile_link_color":"179C41","profile_sidebar_border_color":"CCCCCC","profile_sidebar_fill_color":"E2F5E2","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"regular"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":6873,"favorite_count":35122,"favorited":false,"retweeted":false,"lang":"en"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:07 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:07 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:07 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1034759395622756352/G3QDI4pv_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:07 GMT + Last-Modified: + - Wed, 29 Aug 2018 11:05:19 GMT + Server: + - ECS (fcn/41AD) + Surrogate-Key: + - profile_images profile_images/bucket/6 profile_images/1034759395622756352 + X-Cache: + - HIT + X-Connection-Hash: + - 338e7b270c00eefdafc384c84ca630b1 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '210' + Content-Length: + - '3507' + body: + encoding: ASCII-8BIT + string: !binary |- + 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moIs1eYUfJBwn53LSGXGT3xNGNYRphinylWZgIKCKbbhys733LtVge77n//EACUQAQACAgEEAgIDAQAAAAAAAAEAESExQVFhcYGRocHxENHwsf/aAAgBAQABPxBOmoh+IVBld1F8QMOclYy5rgTbHFa2jjYUXNzDdFcdsS97gTe5oZTJ+xVZc6BUilGA9StsGruh+ZdLuO2OWeMJimWxQuLEGS6wNpTTYrVS91WW6xUNhOBzqf8AQz9sgLRd/gmCo1iUccQjzI40lna0uKj67xXgNHxK35ZgxqLymb7Ux7k4lI9g9C/iU7LRS1QugOr0n6bFAqmyxWslKADKsspvbHwxUihAQAWgoxKKghoEqs3hePcWEERR0BfQ3K4P0AS/CjGeJuVZAfcQCilqIE4qzZnhOZ/h/dHwA23Tcu7bYPCvSHwZeU0RlAWsUGWb5hC2R0utMcGmHYLO/lfIyhI6bqlt+XwQNwCuJlu704cd4NhbbXDDOIIhZOtKZpasT0a3O8+D+5VArP8ANw6vEKXY9e0Exz7yhCvlx5hCiy4yfX8og08xs6FKFGfUC7gikrzr0yjyncpjvWmKaQXwpCCwHa7rKI0KndRMpDk2NRMtYK2YlsjlxQh+ob8bdmkfH3Q5+PZBclZOhF/wem8nu0CPq4kgjGrUrd97riqitmoOUAp7g+EAoCg0USyN5mlqJL9VLS+RCbPN4lvZUWgFQ6jkvqMCLW6BsqBYmIvtCiBYsS661ZCA9TMgcYbbTpUZXgHAsNgATa083Ba54l2qVzZe4E9opK4QjBpbllfbYAGaVNoB8qqWWNoweCEsxIlNlnYQ06hOR1eW4SQoDBsGtwIO6Ep1XaxplJfo02m/8uXibRh3NP4//9kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:07 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Pakistan&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:07 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:08 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Zug%20zwischen%20BS%20-%20WOB%20-%20B%20-%20HH&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:07 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:08 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/862655866327240704/WtPq3dQv_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Md5: + - rPsU3ndDDAINBRK+KU5yow== + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:07 GMT + Last-Modified: + - Thu, 11 May 2017 13:07:20 GMT + Server: + - ECS (fcn/4196) + Surrogate-Key: + - profile_images profile_images/bucket/1 profile_images/862655866327240704 + X-Cache: + - HIT + X-Connection-Hash: + - f3107d5278515440f12b27e44e771796 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '131' + Content-Length: + - '3863' + body: + encoding: ASCII-8BIT + string: !binary |- + /9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAH4QAFAAsADQAJABVhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAEkASQMBIgACEQEDEQH/xAAbAAACAwEBAQAAAAAAAAAAAAAGBwMEBQECAP/EABoBAAMAAwEAAAAAAAAAAAAAAAMEBQABAgb/2gAMAwEAAhADEAAAAVXPB8wL1uYN7Xepk2e8F2silXOsaZY9zNEQ81w4OD+v5Lw0YA9qgyp6Q/s6dSMKezCNlKqH6FGfW42lRf3prqKabjfWEt2VQgyR4XuhCX3TI5ie6T5bhRFVOPNkRwQyytXJJlAcuiZV3jvK5nS/RKzDNVyzPaq12hsiz7wuaSz61DWgun4X/8QAJxAAAgICAQMDBAMAAAAAAAAAAwQBAgAFEQYSExQVIRAxMjUgMzT/2gAIAQEAAQUC7r8Qc8QUpC4k82Cl3TXm1cJ1C5cRXvIAG9rTX+4i/hSO7KcxWPucfZf6ua245mOMHXnNh21dFrLHTJa1LvVrZfIzjHQ2oAux7MEQLR0dZB100irsb+sxPf3oq65cil0FqZ6VTOpGLXbnKTMZp9mK9HtgJUGxdI4yvHnuuPiKjklfSVzYF8j8xg6WtkqtZCLVjD1bZK6w3hdtMUn26sZ7evhfk0R8JEoOb7aGI21LhceK0DK4uWJTu1bn3RjNdqambHpNZXNytVXaa2aUP6uQRve/zo9OIjDtFwrs7QxJ1/OPmWAUfzHWHMbNE/hK3AoXePYlNa1DCO9DFibgVrgzdfsFc60/xi+wP1Tf5dJ/qtx/Rf8AHP/EACQRAAEFAAEDBAMAAAAAAAAAAAEAAgMEERIFITEQFSJBQnGB/9oACAEDAQE/AdUY0qRnZb6MgstZs7cP7VWPWqz41TvZEOTjgXuFY/kp5OchKinMRUtgyFdVLpuMI+/KLasZzkf4m13OjDgpdZ3TT3+RV3pLrfEKtQgAIzV0z513b9FWmAOxRtBOq9K+OqZGHCum23StIcPC/8QAIBEAAgIDAAMAAwAAAAAAAAAAAQIAAwQRIRIiMUJRsf/aAAgBAgEBPwGM2or97PkB18lORVcPUzIfRlL90Yh3wQY9p/H+SisJUqiPULBK6BXMdQm3/UUuRuNaqtoxAGmpiZHt4gbmRkOSNcmYvhYJjnkfgImJzIAmTQEI1P/EADQQAAEEAAMFBwIEBwAAAAAAAAEAAgMREhMhBDFBUWEQIjIzQnKBcZEgIzRSc4OSk6Kxwf/aAAgBAQAGPwKg933QAldpu1X5jy6uapu0Pja3cAsbnkk81iaNWlZb44XCq1ajEYqvjaj2OTY2SNa2tSvI/wAvwfGnwqOnE6LWiCuh/Ach+fHzqlquiIy6jFDT6b06eM2/9uLega0v5+ViaN1Hs3Lgvy9qEDRqSdEWukj2r3RoRx7Nk3wa7xFRzZjsRsO+FiEwDALLAmzvjax0jvC0p44tr7KKZ7pS5+tAgLynn+YvIP8AcKyPRFw69lg1SLSRFL6mHj1CzGbY09Bq8rNfo0Cmt5BZENl70yJm5oDQrFFm670XiZ/Wp3c3ns7rSaFleRLfDurLyXh9YqOhpYssBo1Nnco5Qa1o/KbAZBHJLpf7BzQadolc0L1/dP8AceyTMxYXMLTh3pkIY9veHe6JmWcTxEWYm6nXcoxA2Ixlt4idx4/VWmbQRoRr9VmtIIbrhxcOx42kuHqAav0+L3OKnhY3CzRzR0Ka57MfIdVWTmkxWY8Ot3WpRL2FmFugu96a6bHM6uJoIRgHJAxMgHhtMEuEOL+Aqhy7NmLYI4nukw91/NWo30aMVX8lCS3Ct1cFl7LAHgx4nnxWUGu3k2eqhe31MCik6ELuxeUbsHeOzZ/exOUP8X/iK2v4TPaFH9T/ALTfcj2f/8QAJhABAAIBAwIHAQEBAAAAAAAAAQARITFBUWFxEIGRobHB0SDw8f/aAAgBAQABPyECgBteBxihRcG4QAEsusdpprYOSzKvyHERMO4SvlHRGVA5rdek62KePAM6YiWwlsfUXDU2mQfvK12Fj7jEhQWeFSouGW1u+zFVaiO3IDWAKXj2DLqymmFgtTp17ypLQeyBNdSdLIhcOdD38G+qFlBUd6KPm0wjADb02MOkM9EpbLWLmoxhMnaWmWGUlawbCGO92nvDYGoQZriCjT5fweBy8OI7kZYbP9rFBCyE2mrFOMY/HtElj4EOwfukOjQXsSr8eBZQc3AztC5rV9bjUbDaBVP+enHfprqYtcMbdpA05gUvGpWuqP09ZjENPS1b9ZjMig4F3ZrtEphkdMH5hNARrw57pU2hLon+jgbbbqecsozXNWAi6zT2l31BSN3FKNckCL/gRwV3mRPGrgr0L9YrwxbeJh4C1Rc5lFQpOzDnDlau3RUxXE+/19wvCIWgEd7qDeGHGYPdM1axM4Ax1jwwt9hqpYhrivwBKM3qJyLznaAG2oPyCdsG/qwLg3g2usxrX71DRoWDCn6EtFhpkhgqxablljnz6zdqBuuWUPtp6OjFeKWc1vcqFeVcHPqWc/xLx7Y+Se1+b/ACk9g+H//aAAwDAQACAAMAAAAQhkW/Dew0GjyFZBzFP/DYwBvj6//EACMRAQACAQMEAgMAAAAAAAAAAAEAESExQWFRcaGxgcGR0fD/2gAIAQMBAT8QubzV4+ZBbMybwMDpUfS+4d+mfW0IIY7RB1w92vcAWX+H9RX91/G3iIKyOpAl4OkWNQrWgBtfnPEVlvD6+42RTzFYC0jJbnODnS+0NspHxv8AUbhopaVpj3cf9htt2uOuUMMlSpBHX3CMZGmNeDkv5n//xAAgEQEAAgICAgMBAAAAAAAAAAABABEhMUFhcYGRodGx/9oACAECAQE/EASMZfRQvCLqlh1dNfydtUV3LjEC1/LhVi+f1AY0F+efuVla7gyjbLh0MHN8teiq7lMY8xDZCBdSjgMHPiAJSZwNmQebeccUyojsivpEyPeEjInN7n//xAAlEAEAAgICAgEEAwEAAAAAAAABABEhMUFRYXHwgZGhsRDB0fH/2gAIAQEAAT8QLZFAAHwXHmURfC7l1zkuvLdQvDCkdk5K17j8X01bnWtytoLoZHr3Bj8RhYqzz5lO+BWhTY0kNBJpyNArKf8AXRAyu5lIaLTyxBDSaXiVrbsxEyU7THWWI1YQsp+mhU8zBk6SKUBR5DMYp8INv9QUtKOPcSlTUjwxI3219LUJO4mlsYOBv1UCJhNqryrCNHpDELohi7HkeoTuiL1EPDh6zjiagQ6gVXwliW6jPqtw8FjX+zPvsgsdEH0jKoWOGAtCztgHOnJjVaIHXuX+PvGNUU1XTQx+ysIFnXizOm9EVEVjC2H5fR9oRloBjG0upjLVK6vzRPjH9RUDbh0yvksDqnuCbfNX1wfrHaVqlHJ6cwVZzuk290XcvGIXzOPQhD7aikISpHwPK7WsvFVAIHfVwujDf+RabltfoVKIu2cBU0qXqfG/7mQLo0dhD8EQOCFL+r+sRUEK6ognotPvKDdVAAQrnWbodxwmVCAuci+FbVKlIEGazgFGxkLm7EUYqq+0AOdxiKwNLQPcpGFDJZ2HBPJMl7uttvbHsDo5h5UzsdBAch2Rn2hFYTIsh4o4mTMY9VBGymFQKMlEWQuiLO0UsZau7Nai6KQUoG7KlEOjfQl+xhRrpxQVFM21R5SfGyuCb4FlsCwsfeDA3HOf+yWrWgpLRfA2fSKKwfBbDAaDTg3UMo1elzNQB7vK5YPhv34FZaUaKOGXFgZOy6M9e1jphXS7HqoRyieYsGAmDIUfeW7QqhRGKFwtGbmIm1OHBmdNcpbgOlDB5JWi9QbYWkzhu+znErwONhvORVqMaokxRYOvTucrwVgD2wzB8KCj2IwVYZKrAD8szJWSlGQcitzwp8n2TT2J+W/b+QTj5HqfFd5+f/TPhuv4/9kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:08 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Zug%20zwischen%20BS%20-%20WOB%20-%20B%20-%20HH&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:07 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:08 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Fair%20Leipzig%20Hall%20H..%20I%20meen%204&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:08 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:08 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1064967265177792513/muZEe7g0_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:08 GMT + Last-Modified: + - Tue, 20 Nov 2018 19:40:36 GMT + Server: + - ECS (fcn/40FC) + Surrogate-Key: + - profile_images profile_images/bucket/4 profile_images/1064967265177792513 + X-Cache: + - HIT + X-Connection-Hash: + - 71df07dcadf450f699f4aeb9f33d8ca3 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '129' + Content-Length: + - '2617' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:08 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Fair%20Leipzig%20Hall%20H..%20I%20meen%204&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:08 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:08 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1065502326222479360.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="6ba7598ee7171aa89d5172a75b5e7634", + oauth_signature="RrL7Yjl6GE4OJ4IJX4H5GiYLFJU%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795868", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2700' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:11:08 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:11:08 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379586847510178; Max-Age=63072000; Expires=Wed, 2 Dec 2020 + 00:11:08 GMT; Path=/; Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_WG9/GD7xyOfaKPFTNVIqHQ=="; Max-Age=63072000; Expires=Wed, + 2 Dec 2020 00:11:08 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - e35a95110d95c5542c3ef8072eecb2cd + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '886' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '142' + X-Transaction: + - 003c3d9c001e7352 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Thu Nov 22 07:08:45 +0000 2018","id":1065502326222479360,"id_str":"1065502326222479360","text":"@33logistic + Over at Mastodon there are working dms. Just saying. \ud83d\ude09","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"33logistic","name":"CCC + Event Logistics","id":811173206887460868,"id_str":"811173206887460868","indices":[0,11]}],"urls":[]},"source":"\u003ca + href=\"https:\/\/example.com\/TwidereProject\" rel=\"nofollow\"\u003eTwidere + for Android #8\u003c\/a\u003e","in_reply_to_status_id":1065497046419939329,"in_reply_to_status_id_str":"1065497046419939329","in_reply_to_user_id":811173206887460868,"in_reply_to_user_id_str":"811173206887460868","in_reply_to_screen_name":"33logistic","user":{"id":354796681,"id_str":"354796681","name":"(\u0e07 + \u0e37\u25bf \u0e37)\u0e27","screen_name":"tamexample","location":"Lost in #Neuland","description":"Flashaholic, + tinkerer and general tekkie. Living the (mostly) open-source life. Meine Wahl + ist gest\u00f6rt. FCK EXTREMISM. I void warranties for fun.","url":"https:\/\/t.co\/J4ZnfQ5z5y","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/J4ZnfQ5z5y","expanded_url":"https:\/\/example.space\/@tamexample","display_url":"example.space\/@tamexample","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":39,"friends_count":103,"listed_count":2,"created_at":"Sun + Aug 14 09:28:04 +0000 2011","favourites_count":876,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":1627,"lang":"de","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"131516","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme14\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme14\/bg.gif","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/932331169064112128\/KaSV48WY_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/932331169064112128\/KaSV48WY_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/354796681\/1524076675","profile_link_color":"000000","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"EFEFEF","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"en"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:09 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Lost%20in%20%23Neuland&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:08 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:09 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/932331169064112128/KaSV48WY_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:09 GMT + Last-Modified: + - Sun, 19 Nov 2017 19:32:07 GMT + Server: + - ECS (fcn/40FB) + Surrogate-Key: + - profile_images profile_images/bucket/2 profile_images/932331169064112128 + X-Cache: + - MISS + X-Connection-Hash: + - 4cab491de27a923b1f2c5cdbd9fe9189 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '297' + Content-Length: + - '2795' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:09 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Lost%20in%20%23Neuland&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:09 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:09 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1065497046419939329.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="3a2fab4325efb72a9fe7f466fdb96910", + oauth_signature="%2BwYKPEqhsVvUK7IDnOSZpB4J1h0%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795869", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2772' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:11:09 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:11:09 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379586930698550; Expires=Wed, 02 Dec 2020 00:11:09 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_5gBdW/xaAyiVrU64RgDTYg=="; Expires=Wed, 02 Dec 2020 + 00:11:09 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - 4e864881ee6bd6e4b4e896a754e9a821 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '885' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '171' + X-Transaction: + - 00e4fd6200484154 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Thu Nov 22 06:47:46 +0000 2018","id":1065497046419939329,"id_str":"1065497046419939329","text":"We''ve + deactivated our direct message feature.\nCause of the new Twitter API we aren''t + able to work on DMs atm.\nIf yo\u2026 https:\/\/t.co\/dVfqyH0QXm","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/dVfqyH0QXm","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1065497046419939329","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":1065497031790211074,"in_reply_to_status_id_str":"1065497031790211074","in_reply_to_user_id":811173206887460868,"in_reply_to_user_id_str":"811173206887460868","in_reply_to_screen_name":"33logistic","user":{"id":811173206887460868,"id_str":"811173206887460868","name":"CCC + Event Logistics","screen_name":"33logistic","location":"Fair Leipzig Hall + H.. I meen 4","description":"Logistics for Chaos Events. Currently planning + an awesome #35c3 in Leipzig 35c3@example.de","url":"https:\/\/t.co\/g2YFZuZZsj","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/g2YFZuZZsj","expanded_url":"https:\/\/example.de","display_url":"example.de","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":2198,"friends_count":56,"listed_count":49,"created_at":"Tue + Dec 20 11:35:38 +0000 2016","favourites_count":170,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":370,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1064967265177792513\/muZEe7g0_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1064967265177792513\/muZEe7g0_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/811173206887460868\/1542742947","profile_link_color":"000000","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":3,"favorite_count":4,"favorited":false,"retweeted":false,"lang":"en"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:09 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Fair%20Leipzig%20Hall%20H..%20I%20meen%204&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:09 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:10 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1064967265177792513/muZEe7g0_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:09 GMT + Last-Modified: + - Tue, 20 Nov 2018 19:40:36 GMT + Server: + - ECS (fcn/40FC) + Surrogate-Key: + - profile_images profile_images/bucket/4 profile_images/1064967265177792513 + X-Cache: + - HIT + X-Connection-Hash: + - 71df07dcadf450f699f4aeb9f33d8ca3 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '129' + Content-Length: + - '2617' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:10 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/statuses/show/1065497031790211074.json + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="bab0a69fdb7b4718244cb9e3a86f28d4", + oauth_signature="WrbLQ6TcP7153IxnujSFyoJ462w%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795870", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '2707' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:11:09 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:11:09 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379586973197398; Expires=Wed, 02 Dec 2020 00:11:09 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_xCHa1qb/K3d5JeUU/G6TFw=="; Expires=Wed, 02 Dec 2020 + 00:11:09 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - d116e685690ffcfe4b23ff22ddef0be5 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '900' + X-Rate-Limit-Remaining: + - '884' + X-Rate-Limit-Reset: + - '1543796753' + X-Response-Time: + - '151' + X-Transaction: + - 00b53dd000fc233a + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"created_at":"Thu Nov 22 06:47:43 +0000 2018","id":1065497031790211074,"id_str":"1065497031790211074","text":"Wir + haben unsere DMs deaktiviert.\nLeider k\u00f6nnen wir dank der neuen Twitter + API keine DMs mehr bearbeiten.\nDaher sin\u2026 https:\/\/t.co\/r7sp3Pfr8d","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/r7sp3Pfr8d","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1065497031790211074","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"source":"\u003ca + href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter + for Android\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":811173206887460868,"id_str":"811173206887460868","name":"CCC + Event Logistics","screen_name":"33logistic","location":"Fair Leipzig Hall + H.. I meen 4","description":"Logistics for Chaos Events. Currently planning + an awesome #35c3 in Leipzig 35c3@example.de","url":"https:\/\/t.co\/g2YFZuZZsj","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/g2YFZuZZsj","expanded_url":"https:\/\/example.de","display_url":"example.de","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":2198,"friends_count":56,"listed_count":49,"created_at":"Tue + Dec 20 11:35:38 +0000 2016","favourites_count":170,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":370,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1064967265177792513\/muZEe7g0_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1064967265177792513\/muZEe7g0_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/811173206887460868\/1542742947","profile_link_color":"000000","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":1,"favorite_count":4,"favorited":false,"retweeted":false,"lang":"de"}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:10 GMT +- request: + method: get + uri: http://maps.googleapis.com/maps/api/geocode/json?address=Fair%20Leipzig%20Hall%20H..%20I%20meen%204&sensor=true + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - maps.googleapis.com + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json; charset=UTF-8 + Date: + - Mon, 03 Dec 2018 00:11:09 GMT + Pragma: + - no-cache + Expires: + - Fri, 01 Jan 1990 00:00:00 GMT + Cache-Control: + - no-cache, must-revalidate + Vary: + - Accept-Language + Access-Control-Allow-Origin: + - "*" + Server: + - mafe + Content-Length: + - '228' + X-Xss-Protection: + - 1; mode=block + X-Frame-Options: + - SAMEORIGIN + body: + encoding: ASCII-8BIT + string: | + { + "error_message" : "Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account", + "results" : [], + "status" : "OVER_QUERY_LIMIT" + } + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:10 GMT +- request: + method: get + uri: http://pbs.twimg.com/profile_images/1064967265177792513/muZEe7g0_bigger.jpg + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Zammad User Agent + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Host: + - pbs.twimg.com + response: + status: + code: 200 + message: OK + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - "*" + Access-Control-Expose-Headers: + - Content-Length + Cache-Control: + - max-age=604800, must-revalidate + Content-Type: + - image/jpeg + Date: + - Mon, 03 Dec 2018 00:11:09 GMT + Last-Modified: + - Tue, 20 Nov 2018 19:40:36 GMT + Server: + - ECS (fcn/40FC) + Surrogate-Key: + - profile_images profile_images/bucket/4 profile_images/1064967265177792513 + X-Cache: + - HIT + X-Connection-Hash: + - 71df07dcadf450f699f4aeb9f33d8ca3 + X-Content-Type-Options: + - nosniff + X-Response-Time: + - '129' + Content-Length: + - '2617' + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:10 GMT +- request: + method: get + uri: https://api.twitter.com/1.1/search/tweets.json?count=100&q=hash_tag1&result_type=mixed + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - TwitterRubyGem/6.2.0 + Authorization: + - OAuth oauth_consumer_key="some", oauth_nonce="b88d83169c5ad58749312e180ccb580a", + oauth_signature="mwtfaPm2G4x5pRnOr79wWj%2F4UOc%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543795870", oauth_token="some", + oauth_version="1.0" + Connection: + - close + Host: + - api.twitter.com + response: + status: + code: 200 + message: OK + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Connection: + - close + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '279' + Content-Type: + - application/json;charset=utf-8 + Date: + - Mon, 03 Dec 2018 00:11:10 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Mon, 03 Dec 2018 00:11:10 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154379587034389783; Expires=Wed, 02 Dec 2020 00:11:10 GMT; Path=/; + Domain=.twitter.com + - lang=en; Path=/ + - personalization_id="v1_opz8AkZIlfOslIZLilaQyg=="; Expires=Wed, 02 Dec 2020 + 00:11:10 GMT; Path=/; Domain=.twitter.com + Status: + - 200 OK + Strict-Transport-Security: + - max-age=631138519 + X-Access-Level: + - read-write-directmessages + X-Connection-Hash: + - bf3a3e0c9040d3298c82c57bec5b5ce3 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Rate-Limit-Limit: + - '180' + X-Rate-Limit-Remaining: + - '173' + X-Rate-Limit-Reset: + - '1543796367' + X-Response-Time: + - '141' + X-Transaction: + - 004ad5cc00c8a1a9 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: UTF-8 + string: '{"statuses":[],"search_metadata":{"completed_in":0.024,"max_id":1069383442410979328,"max_id_str":"1069383442410979328","query":"hash_tag1","refresh_url":"?since_id=1069383442410979328&q=hash_tag1&result_type=mixed&include_entities=1","count":100,"since_id":0,"since_id_str":"0"}}' + http_version: + recorded_at: Mon, 03 Dec 2018 00:11:10 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_facebook.yml b/test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_facebook.yml new file mode 100644 index 000000000..18aab5493 --- /dev/null +++ b/test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_facebook.yml @@ -0,0 +1,58 @@ +--- +http_interactions: +- request: + method: post + uri: https://graph.facebook.com/oauth/access_token + body: + encoding: UTF-8 + string: client_id=123&client_secret=123&grant_type=client_credentials + headers: + User-Agent: + - Faraday v0.12.2 + Content-Type: + - application/x-www-form-urlencoded + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 400 + message: Bad Request + headers: + Www-Authenticate: + - OAuth "Facebook Platform" "invalid_client" "Error validating application. + Cannot get application info due to a system error." + Content-Type: + - application/json; charset=UTF-8 + Facebook-Api-Version: + - v2.8 + X-Fb-Rev: + - '4583987' + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-store + X-Fb-Trace-Id: + - Gun7Y5LdGdV + Expires: + - Sat, 01 Jan 2000 00:00:00 GMT + Strict-Transport-Security: + - max-age=15552000; preload + Pragma: + - no-cache + X-Fb-Debug: + - 6TUcLsJ9OAIw/Pb2N6TLCham7A35JxDcZGYRF8P/KOsWeJQNr7YiKMmb+PSN2yO11B/55cBLEiTzamU4ejATvQ== + Date: + - Fri, 30 Nov 2018 12:50:49 GMT + Connection: + - keep-alive + Content-Length: + - '166' + body: + encoding: UTF-8 + string: '{"error":{"message":"Error validating application. Cannot get application + info due to a system error.","type":"OAuthException","code":101,"fbtrace_id":"Gun7Y5LdGdV"}}' + http_version: + recorded_at: Fri, 30 Nov 2018 12:50:49 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_invalid_credentials_with_created.yml b/test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_invalid_credentials_with_created.yml new file mode 100644 index 000000000..f44e46155 --- /dev/null +++ b/test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_invalid_credentials_with_created.yml @@ -0,0 +1,58 @@ +--- +http_interactions: +- request: + method: post + uri: https://graph.facebook.com/oauth/access_token + body: + encoding: UTF-8 + string: client_id=123&client_secret=123&grant_type=client_credentials + headers: + User-Agent: + - Faraday v0.12.2 + Content-Type: + - application/x-www-form-urlencoded + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 400 + message: Bad Request + headers: + Www-Authenticate: + - OAuth "Facebook Platform" "invalid_client" "Error validating application. + Cannot get application info due to a system error." + Content-Type: + - application/json; charset=UTF-8 + Facebook-Api-Version: + - v2.8 + X-Fb-Rev: + - '4583987' + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-store + X-Fb-Trace-Id: + - GZPegj7a6Qi + Expires: + - Sat, 01 Jan 2000 00:00:00 GMT + Strict-Transport-Security: + - max-age=15552000; preload + Pragma: + - no-cache + X-Fb-Debug: + - wTb/DgqyxUo12+6UzdZYRoTSgDxHMW+7vSlIMS5qBunqL5yvX99n99/qu4d8PnQWd39XDK/k/mW5/w3uLlZh5A== + Date: + - Fri, 30 Nov 2018 12:50:46 GMT + Connection: + - keep-alive + Content-Length: + - '166' + body: + encoding: UTF-8 + string: '{"error":{"message":"Error validating application. Cannot get application + info due to a system error.","type":"OAuthException","code":101,"fbtrace_id":"GZPegj7a6Qi"}}' + http_version: + recorded_at: Fri, 30 Nov 2018 12:50:46 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_invalid_credentials_with_not_created.yml b/test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_invalid_credentials_with_not_created.yml new file mode 100644 index 000000000..888394f1e --- /dev/null +++ b/test/data/vcr_cassettes/request/external_credentials/facebook/app_verify_invalid_credentials_with_not_created.yml @@ -0,0 +1,58 @@ +--- +http_interactions: +- request: + method: post + uri: https://graph.facebook.com/oauth/access_token + body: + encoding: UTF-8 + string: client_id=123&client_secret=123&grant_type=client_credentials + headers: + User-Agent: + - Faraday v0.12.2 + Content-Type: + - application/x-www-form-urlencoded + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 400 + message: Bad Request + headers: + Www-Authenticate: + - OAuth "Facebook Platform" "invalid_client" "Error validating application. + Cannot get application info due to a system error." + Content-Type: + - application/json; charset=UTF-8 + Facebook-Api-Version: + - v2.8 + X-Fb-Rev: + - '4583987' + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-store + X-Fb-Trace-Id: + - Ggs96Qoszeb + Expires: + - Sat, 01 Jan 2000 00:00:00 GMT + Strict-Transport-Security: + - max-age=15552000; preload + Pragma: + - no-cache + X-Fb-Debug: + - yM7KX2GFHeiEVA5j5YGg01LW/cHXYlryMROYhI24z7qMCd983WTNydJ0Lyy8Ve+i9HGTKoOEieWQqs576gYy1A== + Date: + - Fri, 30 Nov 2018 12:50:46 GMT + Connection: + - keep-alive + Content-Length: + - '166' + body: + encoding: UTF-8 + string: '{"error":{"message":"Error validating application. Cannot get application + info due to a system error.","type":"OAuthException","code":101,"fbtrace_id":"Ggs96Qoszeb"}}' + http_version: + recorded_at: Fri, 30 Nov 2018 12:50:46 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/request/external_credentials/facebook/callback_invalid_credentials.yml b/test/data/vcr_cassettes/request/external_credentials/facebook/callback_invalid_credentials.yml new file mode 100644 index 000000000..d4e74f145 --- /dev/null +++ b/test/data/vcr_cassettes/request/external_credentials/facebook/callback_invalid_credentials.yml @@ -0,0 +1,56 @@ +--- +http_interactions: +- request: + method: get + uri: https://graph.facebook.com/oauth/access_token?client_id=123&client_secret=123&code&redirect_uri=http://zammad.example.com/api/v1/external_credentials/facebook/callback + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v0.12.2 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 400 + message: Bad Request + headers: + Www-Authenticate: + - OAuth "Facebook Platform" "invalid_client" "Error validating application. + Cannot get application info due to a system error." + Content-Type: + - application/json; charset=UTF-8 + Facebook-Api-Version: + - v2.8 + X-Fb-Rev: + - '4583987' + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-store + X-Fb-Trace-Id: + - FEdFTInow6l + Expires: + - Sat, 01 Jan 2000 00:00:00 GMT + Strict-Transport-Security: + - max-age=15552000; preload + Pragma: + - no-cache + X-Fb-Debug: + - JIhX2xi6mDCBjKZi8VNZ9BEtE/qYmrtLadaqbo6Rkj941+6PJIL3Sd3cmtf/Oa5NjclmRNSuNTEEx2gjmrmgxg== + Date: + - Fri, 30 Nov 2018 12:50:48 GMT + Connection: + - keep-alive + Content-Length: + - '166' + body: + encoding: UTF-8 + string: '{"error":{"message":"Error validating application. Cannot get application + info due to a system error.","type":"OAuthException","code":101,"fbtrace_id":"FEdFTInow6l"}}' + http_version: + recorded_at: Fri, 30 Nov 2018 12:50:48 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/request/external_credentials/facebook/link_account_with_invalid_credential.yml b/test/data/vcr_cassettes/request/external_credentials/facebook/link_account_with_invalid_credential.yml new file mode 100644 index 000000000..bdc12582a --- /dev/null +++ b/test/data/vcr_cassettes/request/external_credentials/facebook/link_account_with_invalid_credential.yml @@ -0,0 +1,58 @@ +--- +http_interactions: +- request: + method: post + uri: https://graph.facebook.com/oauth/access_token + body: + encoding: UTF-8 + string: client_id=123&client_secret=123&grant_type=client_credentials + headers: + User-Agent: + - Faraday v0.12.2 + Content-Type: + - application/x-www-form-urlencoded + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 400 + message: Bad Request + headers: + Www-Authenticate: + - OAuth "Facebook Platform" "invalid_client" "Error validating application. + Cannot get application info due to a system error." + Content-Type: + - application/json; charset=UTF-8 + Facebook-Api-Version: + - v2.8 + X-Fb-Rev: + - '4583987' + Access-Control-Allow-Origin: + - "*" + Cache-Control: + - no-store + X-Fb-Trace-Id: + - GHQfpOGoO6+ + Expires: + - Sat, 01 Jan 2000 00:00:00 GMT + Strict-Transport-Security: + - max-age=15552000; preload + Pragma: + - no-cache + X-Fb-Debug: + - m45LKcljfKLk5t2vVVgXoLkxboPq32H2Byv20O+HYluzgxL562XCEFcUiEH2dyt9UOGMqoFUpYHSYJGaEnrxRA== + Date: + - Fri, 30 Nov 2018 12:50:47 GMT + Connection: + - keep-alive + Content-Length: + - '166' + body: + encoding: UTF-8 + string: '{"error":{"message":"Error validating application. Cannot get application + info due to a system error.","type":"OAuthException","code":101,"fbtrace_id":"GHQfpOGoO6+"}}' + http_version: + recorded_at: Fri, 30 Nov 2018 12:50:47 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_invalid_credentials_with_created.yml b/test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_invalid_credentials_with_created.yml new file mode 100644 index 000000000..92649c91f --- /dev/null +++ b/test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_invalid_credentials_with_created.yml @@ -0,0 +1,76 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.twitter.com/oauth/request_token + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - OAuth gem v0.5.3 + Content-Length: + - '0' + Authorization: + - OAuth oauth_callback="http%3A%2F%2Fzammad.example.com%2Fapi%2Fv1%2Fexternal_credentials%2Ftwitter%2Fcallback", + oauth_consumer_key="123", oauth_nonce="0ZvmCFseUeq6QZxGhuzQxLiyty2UErgeVcdRPOk", + oauth_signature="Ps3iBseIQuh0ERb%2F7tEfFBERbwA%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543582246", oauth_version="1.0" + response: + status: + code: 401 + message: Authorization Required + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '89' + Content-Type: + - application/json; charset=utf-8 + Date: + - Fri, 30 Nov 2018 12:50:47 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Fri, 30 Nov 2018 12:50:47 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154358224734601031; Expires=Sun, 29 Nov 2020 12:50:47 GMT; Path=/; + Domain=.twitter.com + - personalization_id="v1_QoTam409bMc8TzMu10F/CA=="; Expires=Sun, 29 Nov 2020 + 12:50:47 GMT; Path=/; Domain=.twitter.com + Status: + - 401 Unauthorized + Strict-Transport-Security: + - max-age=631138519 + Www-Authenticate: + - OAuth realm="https://api.twitter.com" + X-Connection-Hash: + - 2ac9b707f5cdd229664772dc9d4a5a8b + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Response-Time: + - '120' + X-Transaction: + - 00d9dad60073e68c + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: ASCII-8BIT + string: '{"errors":[{"code":32,"message":"Could not authenticate you."}]}' + http_version: + recorded_at: Fri, 30 Nov 2018 12:50:47 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_invalid_credentials_with_not_created.yml b/test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_invalid_credentials_with_not_created.yml new file mode 100644 index 000000000..e54621df2 --- /dev/null +++ b/test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_invalid_credentials_with_not_created.yml @@ -0,0 +1,76 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.twitter.com/oauth/request_token + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - OAuth gem v0.5.3 + Content-Length: + - '0' + Authorization: + - OAuth oauth_callback="http%3A%2F%2Fzammad.example.com%2Fapi%2Fv1%2Fexternal_credentials%2Ftwitter%2Fcallback", + oauth_consumer_key="123", oauth_nonce="OnSYESrZ9psNGeefPXIKKdm1UmtORvReUC7L84EbI", + oauth_signature="poSAw51WwFmwPig%2BsegGMAshh38%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543582246", oauth_version="1.0" + response: + status: + code: 401 + message: Authorization Required + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '89' + Content-Type: + - application/json; charset=utf-8 + Date: + - Fri, 30 Nov 2018 12:50:47 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Fri, 30 Nov 2018 12:50:47 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154358224702333984; Expires=Sun, 29 Nov 2020 12:50:47 GMT; Path=/; + Domain=.twitter.com + - personalization_id="v1_WpGcECrn1i/aClxHh3u6dg=="; Expires=Sun, 29 Nov 2020 + 12:50:47 GMT; Path=/; Domain=.twitter.com + Status: + - 401 Unauthorized + Strict-Transport-Security: + - max-age=631138519 + Www-Authenticate: + - OAuth realm="https://api.twitter.com" + X-Connection-Hash: + - 39c269320726b34fa0002f339f8f095a + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Response-Time: + - '120' + X-Transaction: + - 00455fc500e7af18 + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: ASCII-8BIT + string: '{"errors":[{"code":32,"message":"Could not authenticate you."}]}' + http_version: + recorded_at: Fri, 30 Nov 2018 12:50:46 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_twitter.yml b/test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_twitter.yml new file mode 100644 index 000000000..bef872e01 --- /dev/null +++ b/test/data/vcr_cassettes/request/external_credentials/twitter/app_verify_twitter.yml @@ -0,0 +1,76 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.twitter.com/oauth/request_token + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - OAuth gem v0.5.3 + Content-Length: + - '0' + Authorization: + - OAuth oauth_callback="http%3A%2F%2Fzammad.example.com%2Fapi%2Fv1%2Fexternal_credentials%2Ftwitter%2Fcallback", + oauth_consumer_key="123", oauth_nonce="MUJuxD5pJylV4EjZdF6Z4aOa4ersvQ7X1Yn79OmI", + oauth_signature="fahmle9Bx8I6xsXd4PdB0QjPaog%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543582248", oauth_version="1.0" + response: + status: + code: 401 + message: Authorization Required + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '89' + Content-Type: + - application/json; charset=utf-8 + Date: + - Fri, 30 Nov 2018 12:50:49 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Fri, 30 Nov 2018 12:50:49 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154358224907677984; Max-Age=63072000; Expires=Sun, 29 Nov 2020 + 12:50:49 GMT; Path=/; Domain=.twitter.com + - personalization_id="v1_HLys+XMhL9WX47EwRLZ9ZQ=="; Max-Age=63072000; Expires=Sun, + 29 Nov 2020 12:50:49 GMT; Path=/; Domain=.twitter.com + Status: + - 401 Unauthorized + Strict-Transport-Security: + - max-age=631138519 + Www-Authenticate: + - OAuth realm="https://api.twitter.com" + X-Connection-Hash: + - b8e5026ed8e6cef6e85a0e07023a10ad + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Response-Time: + - '120' + X-Transaction: + - 002723f700aff7dd + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: ASCII-8BIT + string: '{"errors":[{"code":32,"message":"Could not authenticate you."}]}' + http_version: + recorded_at: Fri, 30 Nov 2018 12:50:49 GMT +recorded_with: VCR 4.0.0 diff --git a/test/data/vcr_cassettes/request/external_credentials/twitter/link_account_with_invalid_credential.yml b/test/data/vcr_cassettes/request/external_credentials/twitter/link_account_with_invalid_credential.yml new file mode 100644 index 000000000..bf3160cf7 --- /dev/null +++ b/test/data/vcr_cassettes/request/external_credentials/twitter/link_account_with_invalid_credential.yml @@ -0,0 +1,76 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.twitter.com/oauth/request_token + body: + encoding: UTF-8 + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - OAuth gem v0.5.3 + Content-Length: + - '0' + Authorization: + - OAuth oauth_callback="http%3A%2F%2Fzammad.example.com%2Fapi%2Fv1%2Fexternal_credentials%2Ftwitter%2Fcallback", + oauth_consumer_key="123", oauth_nonce="t1hjtzQSIPDmLGGvg4Z6SkvEONEiuURXlplztO4SA", + oauth_signature="%2BaKBQlubEInj%2Fiso8%2B24N%2FpTqNU%3D", oauth_signature_method="HMAC-SHA1", + oauth_timestamp="1543582247", oauth_version="1.0" + response: + status: + code: 401 + message: Authorization Required + headers: + Cache-Control: + - no-cache, no-store, must-revalidate, pre-check=0, post-check=0 + Content-Disposition: + - attachment; filename=json.json + Content-Length: + - '89' + Content-Type: + - application/json; charset=utf-8 + Date: + - Fri, 30 Nov 2018 12:50:48 GMT + Expires: + - Tue, 31 Mar 1981 05:00:00 GMT + Last-Modified: + - Fri, 30 Nov 2018 12:50:48 GMT + Pragma: + - no-cache + Server: + - tsa_o + Set-Cookie: + - guest_id=v1%3A154358224815402336; Expires=Sun, 29 Nov 2020 12:50:48 GMT; Path=/; + Domain=.twitter.com + - personalization_id="v1_U3NLmMuIacImKBuAWQWA4w=="; Expires=Sun, 29 Nov 2020 + 12:50:48 GMT; Path=/; Domain=.twitter.com + Status: + - 401 Unauthorized + Strict-Transport-Security: + - max-age=631138519 + Www-Authenticate: + - OAuth realm="https://api.twitter.com" + X-Connection-Hash: + - b1de50b95473bb7923c67c58b9f6a226 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - SAMEORIGIN + X-Response-Time: + - '112' + X-Transaction: + - '0095bdf70074b7cd' + X-Twitter-Response-Tags: + - BouncerCompliant + X-Xss-Protection: + - 1; mode=block; report=https://twitter.com/i/xss_report + body: + encoding: ASCII-8BIT + string: '{"errors":[{"code":32,"message":"Could not authenticate you."}]}' + http_version: + recorded_at: Fri, 30 Nov 2018 12:50:48 GMT +recorded_with: VCR 4.0.0 diff --git a/test/integration/twitter_browser_test.rb b/test/integration/twitter_browser_test.rb index 45c55885f..232afe60e 100644 --- a/test/integration/twitter_browser_test.rb +++ b/test/integration/twitter_browser_test.rb @@ -2,9 +2,6 @@ require 'browser_test_helper' class TwitterBrowserTest < TestCase def test_add_config - twitter_config - - hash = "#sweet#{hash_gen}" @browser = browser_instance login( @@ -21,392 +18,40 @@ class TwitterBrowserTest < TestCase sleep 2 set( css: '.content.active .modal [name=consumer_key]', - value: twitter_config[:consumer_key], + value: 'some_key', ) set( css: '.content.active .modal [name=consumer_secret]', - value: 'wrong', + value: 'some_secret', ) click(css: '.content.active .modal .js-submit') watch_for( css: '.content.active .modal .alert', - value: 'Authorization Required', + value: '401 Authorization Required', ) set( - css: '.content.active .modal [name=consumer_secret]', - value: twitter_config[:consumer_secret], + css: '.content.active .modal [name=oauth_token]', + value: 'some_oauth_token', ) - click(css: '.content.active .modal .js-submit') - - watch_for_disappear( - css: '.content.active .modal .alert', - value: 'Authorization Required', - ) - - watch_for( - css: '.content.active .js-new', - value: 'add account', - ) - - click(css: '.content.active .js-configApp') set( - css: '.content.active .modal [name=consumer_secret]', - value: 'wrong', + css: '.content.active .modal [name=oauth_token_secret]', + value: 'some_oauth_token_secret', ) + + set( + css: '.content.active .modal [name=env]', + value: 'some_env', + ) + click(css: '.content.active .modal .js-submit') watch_for( css: '.content.active .modal .alert', - value: 'Authorization Required', + value: '401 Authorization Required', ) - set( - css: '.content.active .modal [name=consumer_secret]', - value: twitter_config[:consumer_secret], - ) - click(css: '.content.active .modal .js-submit') - - watch_for_disappear( - css: '.content.active .modal .alert', - value: 'Authorization Required', - ) - - watch_for( - css: '.content.active .js-new', - value: 'add account', - ) - - click(css: '.content.active .js-new') - - sleep 10 - - set( - css: '#username_or_email', - value: twitter_config[:twitter_user_login], - no_click: true, #