<%- @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 |-
+ /9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAH4gAIABYACgApACphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAEkASQMBIgACEQEDEQH/xAAbAAACAwEBAQAAAAAAAAAAAAADBAEFBgcCAP/EABkBAAMBAQEAAAAAAAAAAAAAAAABAgMEBf/aAAwDAQACEAMQAAABb1eS2hPP1SVWS6Pacst9Z6MNNu7Tp6jn8Tfu5bxxq5Yzh0tYrTjze31HL9H1lJi+l52yqH0hrO+YMWFphOPU2i93XWdwpKTB0JTTTLe1iefx+2lvalryGRx4KOnMhiiqKErUkAcZ/lCoZleSieolP//EACYQAAEEAgICAQQDAAAAAAAAAAIAAQMEERMFEiExBhQVIiMyM0H/2gAIAQEAAQUC+N+IZCaOO/YCwTTGBw3oZBDBr0iJTyBEH3SivjHRo+jMrglFMJGBObSNRsnWVSb6iJ2dc/yDCG0Vw1s6it8pJiO1I63RTi7gLvLGT1eQaq1S9FZDn7W6z5UZ4TuJPtZSmUZFP1DcLqueweHrwBNyTBFa2ooT1N20OD9QreLMfVhHq1UcH0dyNiE/3rjzraZxpzhdARm1BFLagrkuJrRFPylWOOLh/wC6SaMo8oJZcZkJ9eX/AGrBLWKOACTRDGnORbZkxsmNk0q2rYuzrssrKymyyy6/HIvlM67IX8ZWMrqyb23pkyH238Q9P6/1f//EAB4RAAMAAgEFAAAAAAAAAAAAAAABEQIQIQMSE0FR/9oACAEDAQE/ARogh5FLqkGkQxwrh4+TDpLL2d+X0rOSsr1NQh//xAAfEQACAgIDAAMAAAAAAAAAAAAAAQIRAzEQEiETQUL/2gAIAQIBAT8BxyqI5WyOZ6fDk/ot6Pj9sWJ7MWT8vY50Uq2OZHJR1fYmqZbPT0U5HeXFFFFH/8QAKxAAAQMCBQMEAQUAAAAAAAAAAQACERIhAxAiMUEzUYEgMmGRQhMjoaLB/9oACAEBAAY/AnNqBEyEXnhTFP8AqaZ2utRod2VjOZfiODWjldb+pTtTnYnLYVeJc8DsnQKpvPEKp2HKtVVyrkxCqGRwMM/D7Lf+Feb9k5rjJPxshWSUNVEbokW+VxdVGXTYhSDSdoKfh4eGwgGAQ2+QJaQIjdVv2+E02F7L9y3y3lNA1X/IotDr9yqMRrTUPcF+o7E9vB5TwxjYmbBdN6NMabzKlzTT3WgSIu0lOFUgfj2UN9seVTEO7Kt9zFlpcQObotYXOHddPEQu2Te6dgmjwqcFoaHGLJwLagRwE4Ych3bhOGM2adkx2DhxNytXBUNdls1TpHhTb6XXI8K+JOV3O+1pe4eV1nrrHPY/WfHq2lX3z3y39BXnLzkUM//EACUQAQACAgICAQQDAQAAAAAAAAEAESFBMWFRcYEQkaHwILHxwf/aAAgBAQABPyEZ8KFZqO6ANxFTRNte1kL2uhuX09imlDySwURHE5C4L6MFfwvC93HJz4T077hQxXNhoS+zTI4viU868LqDNpY+4YG3dNyldTNDzYX99ztQ55BysrvzMpt/xga3BewjfGsQYL0zUstO4ozvquYCW3o1iDiq5WV6m0hMPz95fb7RF2iiJL9PgxfSCXCce2YzLNBVTqasRezqc0VwvfknhCvKPmLbzibjuBHBLgOMz9BDsBa2kgFsOhEMBbcR11OCPKcOh3ENFXJz6dRlDB6XL5XCD/2W1yLRwJrNZPP0XNNH7kqRWeAyuDBMiocEYLJHd0HC0ZEQV5Iby5Tx2xIVY9kQAV8E+X2hKs0jI6gqtSNxT/Ci+hhvHMubt+MQbN1zn4i4Dg/FP88lTlqCzbBxEC+cw6zvhbuN81ccvHuV/SLkWCHL5QRgPlB2a7xD0/mVRq3qZGa9x0uw4Kv+PT0+g/tf7+sJ9P8A/9oADAMBAAIAAwAAABAj8sZC2kAcDMewalTXgqCrPchn/8QAHBEBAQEAAgMBAAAAAAAAAAAAAREAEEEhMVFh/9oACAEDAQE/EApq6Llcww1BhDquHZn61Uw2ecgB97ocBWMsRw+nC/e/fBXMF5Am/8QAGxEBAQEBAAMBAAAAAAAAAAAAAQARIRAxUUH/2gAIAQIBAT8QwdujvZLCHu35Q3XqRw4zXS7MosRZm3somTjYEZwqyfSX5k0YD9j7SHhnsjw//8QAJhABAAICAQMDBQEBAAAAAAAAAREhADFBUWFxkaGxEIHB4fDR8f/aAAgBAQABPxCGHI0JPmxO2TTrTKJ4KF9BceqRQFbByHSB9+zr1QJG36ciD0X6Y4xtPPUk65rmsGhgbHlsB27vbO1/jtiSgQJRRAjRtlYhu8LAaYCvkDuHK3iNYFX1g1dF6lAyRtthDahKntgRKVzXRY05NckCjAdLxzgR4RgGTmOmCmgujnCTsooEMQKV4Z/3mP0LgEySKSDiHjV481OyNEjrFNp8YpPgYIglAmaH84fESnDIkHmq851ADYFxPuRkxVCCNflpnILwzKYI27M126rAnaFIwQQd9YWEd1RzE3nY9b/MTfnJ5gY79O28DCzlXIHUtj5xikyQAeUtZubquMeCCeLlePgnEZIVFISwl3Fz0xZaCZUhVo4qZ2bwbLs4JREGY+5O8Ke4dGGgIuniKnAhtA6BKtjPiPpU9iAJjLpvfTBSUaSLqh/t4pQKS0kQgpfPMcYiWL0856BEYdq4RITXQvWsPGckyc0nSLo840xEVE/tMYw0BAEElNS3rtkcdNglL1PTlyP3P3kr4Xqoq74yVnsSIdwhUxGCJdQslm3mYbhvnIQ8WkNEkGAE0ISsLhip81haCXZImbSa/JebPVnw2dPbIJ0tWiFvWo47OBI0QUmx6Z5evkgp1KI+2OFgQtqdJbjFKLCjD1vBZSdgIvriSLkCksaBvKRepiwCSQxx0icvHzU+AQ5934z+2/GFCJwgw6Pgi3CqbKnh5wooLQpOJYqH7/jLZCONrhSs/GQ5IaIQy1P2cs7OYoWRuATCAkqVzKAomBTkogDwOTIn42cuzCpA30zyxoWekxgsuAUDX7yQpid6zwe2bfB9Nq+XyZr5Py5p8c0YvYHxnu8+f/Pp/9kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==
+ 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 |-
+ 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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=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 |-
+ /9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAH4gAIABYACgApACphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAEkASQMBIgACEQEDEQH/xAAbAAACAwEBAQAAAAAAAAAAAAADBAEFBgcCAP/EABkBAAMBAQEAAAAAAAAAAAAAAAABAgMEBf/aAAwDAQACEAMQAAABb1eS2hPP1SVWS6Pacst9Z6MNNu7Tp6jn8Tfu5bxxq5Yzh0tYrTjze31HL9H1lJi+l52yqH0hrO+YMWFphOPU2i93XWdwpKTB0JTTTLe1iefx+2lvalryGRx4KOnMhiiqKErUkAcZ/lCoZleSieolP//EACYQAAEEAgICAQQDAAAAAAAAAAIAAQMEERMFEiExBhQVIiMyM0H/2gAIAQEAAQUC+N+IZCaOO/YCwTTGBw3oZBDBr0iJTyBEH3SivjHRo+jMrglFMJGBObSNRsnWVSb6iJ2dc/yDCG0Vw1s6it8pJiO1I63RTi7gLvLGT1eQaq1S9FZDn7W6z5UZ4TuJPtZSmUZFP1DcLqueweHrwBNyTBFa2ooT1N20OD9QreLMfVhHq1UcH0dyNiE/3rjzraZxpzhdARm1BFLagrkuJrRFPylWOOLh/wC6SaMo8oJZcZkJ9eX/AGrBLWKOACTRDGnORbZkxsmNk0q2rYuzrssrKymyyy6/HIvlM67IX8ZWMrqyb23pkyH238Q9P6/1f//EAB4RAAMAAgEFAAAAAAAAAAAAAAABEQIQIQMSE0FR/9oACAEDAQE/ARogh5FLqkGkQxwrh4+TDpLL2d+X0rOSsr1NQh//xAAfEQACAgIDAAMAAAAAAAAAAAAAAQIRAzEQEiETQUL/2gAIAQIBAT8BxyqI5WyOZ6fDk/ot6Pj9sWJ7MWT8vY50Uq2OZHJR1fYmqZbPT0U5HeXFFFFH/8QAKxAAAQMCBQMEAQUAAAAAAAAAAQACERIhAxAiMUEzUYEgMmGRQhMjoaLB/9oACAEBAAY/AnNqBEyEXnhTFP8AqaZ2utRod2VjOZfiODWjldb+pTtTnYnLYVeJc8DsnQKpvPEKp2HKtVVyrkxCqGRwMM/D7Lf+Feb9k5rjJPxshWSUNVEbokW+VxdVGXTYhSDSdoKfh4eGwgGAQ2+QJaQIjdVv2+E02F7L9y3y3lNA1X/IotDr9yqMRrTUPcF+o7E9vB5TwxjYmbBdN6NMabzKlzTT3WgSIu0lOFUgfj2UN9seVTEO7Kt9zFlpcQObotYXOHddPEQu2Te6dgmjwqcFoaHGLJwLagRwE4Ych3bhOGM2adkx2DhxNytXBUNdls1TpHhTb6XXI8K+JOV3O+1pe4eV1nrrHPY/WfHq2lX3z3y39BXnLzkUM//EACUQAQACAgICAQQDAQAAAAAAAAEAESFBMWFRcYEQkaHwILHxwf/aAAgBAQABPyEZ8KFZqO6ANxFTRNte1kL2uhuX09imlDySwURHE5C4L6MFfwvC93HJz4T077hQxXNhoS+zTI4viU868LqDNpY+4YG3dNyldTNDzYX99ztQ55BysrvzMpt/xga3BewjfGsQYL0zUstO4ozvquYCW3o1iDiq5WV6m0hMPz95fb7RF2iiJL9PgxfSCXCce2YzLNBVTqasRezqc0VwvfknhCvKPmLbzibjuBHBLgOMz9BDsBa2kgFsOhEMBbcR11OCPKcOh3ENFXJz6dRlDB6XL5XCD/2W1yLRwJrNZPP0XNNH7kqRWeAyuDBMiocEYLJHd0HC0ZEQV5Iby5Tx2xIVY9kQAV8E+X2hKs0jI6gqtSNxT/Ci+hhvHMubt+MQbN1zn4i4Dg/FP88lTlqCzbBxEC+cw6zvhbuN81ccvHuV/SLkWCHL5QRgPlB2a7xD0/mVRq3qZGa9x0uw4Kv+PT0+g/tf7+sJ9P8A/9oADAMBAAIAAwAAABAj8sZC2kAcDMewalTXgqCrPchn/8QAHBEBAQEAAgMBAAAAAAAAAAAAAREAEEEhMVFh/9oACAEDAQE/EApq6Llcww1BhDquHZn61Uw2ecgB97ocBWMsRw+nC/e/fBXMF5Am/8QAGxEBAQEBAAMBAAAAAAAAAAAAAQARIRAxUUH/2gAIAQIBAT8QwdujvZLCHu35Q3XqRw4zXS7MosRZm3somTjYEZwqyfSX5k0YD9j7SHhnsjw//8QAJhABAAICAQMDBQEBAAAAAAAAAREhADFBUWFxkaGxEIHB4fDR8f/aAAgBAQABPxCGHI0JPmxO2TTrTKJ4KF9BceqRQFbByHSB9+zr1QJG36ciD0X6Y4xtPPUk65rmsGhgbHlsB27vbO1/jtiSgQJRRAjRtlYhu8LAaYCvkDuHK3iNYFX1g1dF6lAyRtthDahKntgRKVzXRY05NckCjAdLxzgR4RgGTmOmCmgujnCTsooEMQKV4Z/3mP0LgEySKSDiHjV481OyNEjrFNp8YpPgYIglAmaH84fESnDIkHmq851ADYFxPuRkxVCCNflpnILwzKYI27M126rAnaFIwQQd9YWEd1RzE3nY9b/MTfnJ5gY79O28DCzlXIHUtj5xikyQAeUtZubquMeCCeLlePgnEZIVFISwl3Fz0xZaCZUhVo4qZ2bwbLs4JREGY+5O8Ke4dGGgIuniKnAhtA6BKtjPiPpU9iAJjLpvfTBSUaSLqh/t4pQKS0kQgpfPMcYiWL0856BEYdq4RITXQvWsPGckyc0nSLo840xEVE/tMYw0BAEElNS3rtkcdNglL1PTlyP3P3kr4Xqoq74yVnsSIdwhUxGCJdQslm3mYbhvnIQ8WkNEkGAE0ISsLhip81haCXZImbSa/JebPVnw2dPbIJ0tWiFvWo47OBI0QUmx6Z5evkgp1KI+2OFgQtqdJbjFKLCjD1vBZSdgIvriSLkCksaBvKRepiwCSQxx0icvHzU+AQ5934z+2/GFCJwgw6Pgi3CqbKnh5wooLQpOJYqH7/jLZCONrhSs/GQ5IaIQy1P2cs7OYoWRuATCAkqVzKAomBTkogDwOTIn42cuzCpA30zyxoWekxgsuAUDX7yQpid6zwe2bfB9Nq+XyZr5Py5p8c0YvYHxnu8+f/Pp/9kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==
+ 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 |-
+ /9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAH4QAEAAoAEAANADZhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAEkASQMBIgACEQEDEQH/xAAbAAACAgMBAAAAAAAAAAAAAAACAwQFAAEGB//EABgBAAMBAQAAAAAAAAAAAAAAAAABAgME/9oADAMBAAIQAxAAAAH0k1M6eNm4zwPQiIh2AwFeIeqfGz2wtimGzJVGEsAJMwpKiwpJCq3Up2diKDGM5eJSKbnvIqn2Fvndjo+4suBl569zrjK6K6zkeHoazuKgS0zIo7GmmloAgQTexSWMJRh//8QAJRAAAgIBBAEDBQAAAAAAAAAAAQIAEQMEBRASIRMVMRQWICJB/9oACAEBAAEFAh+FSpUqNwDBdKancQN3Xt4Yxnh6k0Y6AwMIIpBlLPM80e0UMW9J4U7L0gEs18xjB5i/K0B2aLqfKkMCPBqEeLsdDeNBGyVPddHEyLSP1iZLLKY3qNFxVAUUFyZu25YX0/1MBgMBi5gAMgI6ibnr8G3p9xYxrtz1CajU9hNPvZvHveCJvumMTd9K8910l7nuKejuOvy6vF+0scXLlztMjwuSFilRyOBw/wA/3gcf/8QAGxEBAAMAAwEAAAAAAAAAAAAAAAEREgIgIVH/2gAIAQMBAT8BpSmWVMqZeQpEKUpCMvE8/nf/xAAbEQADAQADAQAAAAAAAAAAAAAAARESAxAgUf/aAAgBAgEBPwHRopSmilNDbYzUNFF002YYuP77/8QAMBAAAQMDAQQGCwAAAAAAAAAAAAECEQMhMRASIjBxBDJBUWGREyAjMzRCgZKhotH/2gAIAQEABj8C4OC7YMF01vphTDjqr5kq25srLUNxZIw47iFjmbMGSyGNMFzJ4kESQput06p2iCmTx0lUvp8QwhyFnEKpMkJJvOgt+dK3R6FRtSqibzJi3afP9/qYXzMfsXqR9Rr6iOeirA9WNii7H9HVmps7Syuntacp4CyxydxfaReR7xE5oR6ZvMmlWarm+SlNHORVRL64Tgb3F//EACUQAQACAgICAQMFAAAAAAAAAAEAESExUWEQQXEgobGBkdHw8f/aAAgBAQABPyEFwr1AlfQGMNzPKbtD7zVscVEzW79RO206YSVs7jg9umAe6+IAmQY7ebw8uxC9Y1cVFrXa+5Y0gpnY98syK12mpFhFNvi/Uz1L5zOlLZGYl/sY7pjjMory2Qov4ErcdRFkv4hoWUT88T+tRMGp8yzVlxKcShzLmgd4h93ZKUtZVfuYFF/EE5Q3iUHRU/zGNy1+11LGJOL8cANGlQLSjvEfIfumFB7j4bqLoJkNGg+mX58SMbv9GGDVAqzXLFrdLijLNAwbhhlYHFPKXGTCON+p3Qbzul5Ipxu3tnEIPhpGFbS8HUtB/GhG4tJYJqKhAGsFOJVNxTFDKkd/EkUoKHPjAo7ZYIvGCG8yzwNzbxv+fDmOpr4//9oADAMBAAIAAwAAABBQgWCsXd66QdJEH+4kAQPuvLSD/8QAGxEBAQEAAwEBAAAAAAAAAAAAAQAREDFRYSD/2gAIAQMBAT8Qc27cJmHND5fCCdWt9z4n1IO547tJpPsXXfwm8f/EABwRAQEBAAMAAwAAAAAAAAAAAAEAERAhMUFRYf/aAAgBAgEBPxDg3x3Au81ZfKTWdMZGey32Ozt7BfQ5F+oMMt5OuP/EACYQAQACAgEDAwUBAQAAAAAAAAEAESExQVFhcYGRsRCh0eHw8cH/2gAIAQEAAT8QZQHzUKLyISoZqVugzPCPZGMTjMFbHYvbP6DBCk2hkPdAnhzZhjrpzK2BKgNNTTPNRkxRjTaD5LgtD6kXmEwQMha+NRZSDhaPbM/q/mXPVQ02xy0nPY9sxlCK8inS5WybLZx8SvwxGyMFa+NZqIryQG7y+OsriimhY8GDELazaf48Sg3i8WwTVqcg296jequMFdyZ4ugKx36ygFoS3CnrGagRSFBcKo4iKbdSUrbWODCyvus5KztRWKRzIC11Pp6QUKS7Of3LyYarb7QIvgCiqjcFVCwjpFVUIqrvBweYF+8ugELcT+s/5FXKNjwl5dMFv4lOQK3eYP2QoV/c6+AthGNnuhtBQybCBDYJo0IPOpbSaGkLO59MW7YQw29IbOJ4JWRpm1iIgqag+dxcufVF7ZmL/wCk0u7O1xmBMYPscuK43ceKxIlVsqo748TvftBckXQZDFOyr9ZTGHAFrg7KZ9II3HKwYOfOI8qMFFHyeJcwHdEDis1zf2h/G2pTFpyjeNMKalacAdqlKu2u8winvcUEjXrKf4TNjCG3WIN3TKG5pzwxECrbxcp8cjF7vbht4jbA9Z2WbvifETTDf0R0juNU3efp/9kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==
+ 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 |-
+ 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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=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 |-
+ /9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAH4gALABcABwAqACNhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAEkASQMBIgACEQEDEQH/xAAbAAACAwEBAQAAAAAAAAAAAAAFBgIEBwMAAf/EABkBAAMBAQEAAAAAAAAAAAAAAAEDBQIEAP/aAAwDAQACEAMQAAABlaUW6Z1XrFKWsDKZ6RxXSWReR2BR3X1WU6Nq2yzqnWjXGkBTJThs8xV4CnYkmOZ3TqFzrFdCqra3ntGddCTX8N1VN2fMlaq2xkUoqWQVgVtmVyB7tmZWCe+63aNkOzY+/mV4cJM4+9lalx2Wvyr88GSS388Xgeq/Dg7zCeI//8QAKBAAAQQBAwMDBQEAAAAAAAAABAECAwUABhETEhQVECEkByMwMjQ1/9oACAEBAAEFAtB/q6F7y2QI3Fj2ZKC97kAci1bFY6D/AGr1dz80+UQJEyyOXPIm55A3PImpnkTtpLYtyibrb2K8llxyZRN+KxvoeQggYNaYfla+cebbIva2ie7m5ispP5d0TFshEyxMFJDrnPSE1rGGtlR7ipeMsFyRL2wGVxzR4jbJkgdEGRaONmla6lKTiOsnTG1FbKVWyP7kkHt0h5QMiPi3sS45ANBt6avVYyQXtWjWAKmaRRWafuEZ5dXxPf8AByJPeZv2dEp00n1ARqHVkEktQcNKIunOnw+sW9Go5ZZJn5B1LFtJ06UOZFW2gAFu4BIhYSghrOKthHBB1q9j7vfN8iIHYiFj5FYQRo6yjVIzIWKhkCIy6RjZz4JXqTBncQeifh//xAAhEQACAQQCAgMAAAAAAAAAAAAAAQIDERIhExQEMRBBUf/aAAgBAwEBPwGVPM4DrEI4QseReUxehsdPEk9XHdjpyS+J1nJWKUtYk5b0Z5x0OLOu8L/ZInt7I+RL0czOxI5n+HM2f//EACERAAICAgICAwEAAAAAAAAAAAABAhEDExIhMWEQIkFR/9oACAECAQE/AXLjJ9Czejc/4K3NsxUoIl5FHs52iC7ok4xfaFNOQkRxJMzxr7HD9dmun5FJG9cvXxGkqHhiakaUakakf//EADUQAAIBAgMECAUCBwAAAAAAAAECAAMREiExBBMikQUQMjM0UWFxI0FCUqFjgTBTcoKSo7H/2gAIAQEABj8C2n+qVidMZnYhsrcpfdHlPDt/jNpG7KcI1Fo3tAPJR1VNzSxYmnhxPDjnO4HOdwvOX3K853EJItdJVI+607DT+7rqV7XwjKb81bB/qZptHR+0nE1MYkb06r/pmEUKQepqSReeL2bnP3lzkJ3nJTKlAO92H2xVWuqgrwi2k33FUrGnh4fLzhXMEagxm/SMN3PGLMF8p4z/AFzA1KqT6CVaYpVgSupEshAVO07fKVEyWzFTMT47Uxnh+Ux08ktYXh6Rpm78Q3VtbTgVhw2zluGnWXXEe1NJo3KVkGK5TyjN91U/8E2lV7L2qD950o/17hQp92F57TZgRbIn8yvsdypDnD76iW2tMJ6h8Qx+O+UXLJqjTZXAF2pkE+xnSLUkLt8JbDXW8UVcPGt8jp6TZQpyFJdZVI+YRvxMdVsR6mbFYraG7DlBSxZqxuPeLU2hqtM01yZGylWlRZXUuGxVhY8hEcrumT+UQSRKNKnUdkC8OKcLXIpLi9NeuwpzuvxOGgOUtuiBCVWopOtjLYXlgphdqQudeGdg8p2Ty/h//8QAJhABAAICAQMDBAMAAAAAAAAAAQARITFBUWGREHGBocHR8LHh8f/aAAgBAQABPyG27a+0vBMTG4RhL1SURF8coysnBGlp2hlnaNjDOv5/xC7ovRbK9as3nlh/SIPn6SXKQxyZlDVDK9+rBccjUfJKp+MT/Im93QpRGDxDutEEoZFi/ibgMzaiJTphoZ6l68WvtP3P4lQ+6BVwC1YnV33X2mCMRmU3ebiJROyseeYLWaQHK7QJEMVbuk+RnexVK9v3nZxluVxfioKIRSfCw1bQHLAfZQN4a+0qLzVrQ69InwRPlUIipS0rh6zO5DQ1nMTjt8D9dp+6vSkd10Fwh5n6aiFhSi9ufrcohQCdDD5JZdco4hNN7tIwdmvGXgmJNaax2vvK6nz/AFO9EXZyckdblL2yE7+xY0fyxeKRO0ZqPgmQTRLXudEmXXuTUZvSb2f8S8Cmr7eir9ACt3C0rVqOfRj5DGThDADnSZltvqqNc99YQYdXYHSNfEMooXnriBUgQOV0PEB6EOK7xuUqtUpg17652cwF/MCeNJCzzHQqW3LvzCH1H8w8DMgWzj+F6APQxhv1dx9P/9oADAMBAAIAAwAAABDu9v53b/jBoI/q+3YqdAhdfKqP/8QAHBEBAAICAwEAAAAAAAAAAAAAAQARITFBgZFR/9oACAEDAQE/EHA3FvMq8yqm5SPCDocwUIwmqXbGu6jHHEfsDriNdaiYUx1Bqh1EFhKrOkSELZBygTLgPI/A8hdgeR3g8n//xAAhEQEAAwABAwUBAAAAAAAAAAABABEhYTFRgRBBkdHh8f/aAAgBAgEBPxBHaiB6ZZZVn1KIsO41FMjbsjbSsWc0v8gSyrhXHyQcD8gOR208PaPXjrDNQynlKs2AQwim2/mHPOVlmKyv3Z//xAAmEAEBAAMAAQQBBAMBAAAAAAABEQAhMUFRYXGBkaHB8PEQsdEg/9oACAEBAAE/EE5yIde2DQUjtRemCQ5u1cQfDsJr4xRVajxgLLuz+MBlR47R33phTq3XAram+Sr/AKy+2egMIpCgfvkuBlsH75rdcGoFmpk3ktEFxckNrPpgJFMYTkzuqo2amEgnS70T9jn99zYRav8ArAzRZkpA5lDkvRSU9ql9jEV2dlXcHD8GGbA2A6Qu0rfaOPdhzJrNg+q/tkeNswqksBrb6Z/VMSQTc4rWSkADavjLY+eCcSeAgYAKGjW3JFQFQMTdU4+HJyTkDyCneEfXImfgBLzijjNZ3XkR+rjAUQhVAxJThvhPOf3H/uJQB1cymobA1FfTDRMtE4TaAs1AqmsGrYhaRxeYeVbKBN9+i3yPtlGDkXctb8vvDB72Yjpu9x069zBQOwpsab1lQGTsM2iyiecjO9f5H/rGoAp/Hc51mIWj6+2CZ2b5ZI/PMBEe3jZr8fzyhDykSFuTRv6mGl0KZ5paURpPcR/GI4wYLYB30M+8IIAvXZtogJ7ff+I4xLy2a/TNxmCOzXxld3EKgj+nzhr5v6Rh+P1HIaro4/OM2e2LlpNM8j1SCP0uNuJBy1K0+b7SYq5sDtCUfm8HhQKAg4AaymB5zyoSX6mXi7EJp8jrLpDZYAot7OlPI4oAciFKitXXj6zSuRBSCiMCPWUybCzZgdca1Oyo90d0M4xOgAmrHzcXN1h0Enmh+zOS5H8cXkSRvRy3uU9x0ADk9AkA+0TKaBxgfBhmSWIm0U40fjNCKJ3cV8uuRgADYqHLcozNC0fK9XEjB8Sz+j53/wCN2+MceucM4/x//9kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ 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 |-
+ 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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=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 |-
+ /9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAH4gALABQAEwAqACZhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAEkASQMBIgACEQEDEQH/xAAaAAEBAQEBAQEAAAAAAAAAAAAABAMFAgEH/8QAGAEBAQEBAQAAAAAAAAAAAAAAAAIDAQT/2gAMAwEAAhADEAAAAfxgACyOxnGGgAFFOcVY9r7Fr3zx4deSN41/tWO3NU6HPukN+pGYdDKHDk3oZp1Dvp06fKqrDbTk2Jm8E+imjnEA0uhti7msjs4jDQD/xAAkEAACAQMDBAMBAAAAAAAAAAACAwEABBMQEiARFCNEMDE0Mv/aAAgBAQABBQLjP4/hn8fJatwpQo23tqlLZUGNq5DleT5ajzJAWMs0Jdt7Z9CrFXeMreiksRvvPuraCzB0ONk0yRXGZNZk63EZKASMngVsuVl2i4xLSzZTl7eAGQTbXDop17cMLNOEyIypLNldLPUYkpuJiNPT5K8StPT5XP8AGnp8P//EACARAAIDAAEEAwAAAAAAAAAAAAECAAMREBIiMUEgITL/2gAIAQMBAT8B4f18MZ13cmMFAZvEW1fBM6yfwNhqBEqwJHx+7YKTFpVho4tRX7chprXABwa9O8V/fdH9c//EABsRAAICAwEAAAAAAAAAAAAAAAEgABECEjEh/9oACAECAQE/AW8CbGZdnEBqWUKf/8QANBAAAgADBAgCCQUAAAAAAAAAAQIAERIDECExEyAyM0FRc8FCYQQjMHGRkrHR41JigZOh/9oACAEBAAY/AtUdQ/T2Q6h+muWJCqOJhVPpC4nkYpFuBhk0aHGQFek4QMQVORHHWKDZTAC6Xjs8vMRSlTSfKHs2s2pIJ/mN03wiu3X3L+qNiy+QRuD88bug8GJnIwqs1VoNo3AqaZYk8omizHRWN2f6l+8TdZDorH4RH4VvNumR2v2mAqiZMaJhJ3xb3colhVOuU8ZQbR82UhV7wQRUh2lgOhqszkdSaMQYNq1o1Kf6eUTrp8hGnl60mktFTGZuIIqQ7Sxt23wF4AxJgWK5Ln5m4dTtr6XxHBPveOp217Hp9zeOp21f/8QAKBAAAQIEBAYDAQAAAAAAAAAAAQARITFBYRAgUXGhscHR4fAwgZHx/9oACAEBAAE/IcvpNHxek0ZzQlYy30TEWwW6gQUElzBJH4E4Qb/kgUaVNUVJivLZhJUZlIYbFPyP1yQKBxgpBQo1ARIRAi+DmT4AT5l2wG/sOyAggDCdAsyOEhyB10F8DNEtkE0/mgLOO4gSRlAAk0AfItn3utn2vjWI8Fblro5YpgBVDs4Lg6vxBR2npQwIsgwhVEXDOsinICSvlBH0Dg3yU/E4KJF1InYR15DSQjDhEZYs090UFnmTg7kxJXzk2CW4YBBTXnh9p6YHjOTPEHXta9GJ4zkz8CxDxnJl/9oADAMBAAIAAwAAABDzyvzzzwnPj/w7U/z331zx7/zz/8QAJhEBAAEDAgUEAwAAAAAAAAAAAREAITFRkRBBYXHwIIGh0bHB4f/aAAgBAwEBPxDhn3/p9BBXItEW0yZ860PGqhWDs7cmS97lTkcnOS/91pbgazB7WZ860sJd37pDlxno5e0finGBCwNm2u+LxvSVRkOgTrDfG02tUkH4+uCAgrm3LyxvyowsJi2mjqd6ACCigKPTnwsKyr8MHms1n3cf/8QAGxEBAAIDAQEAAAAAAAAAAAAAAQARECAhQZH/2gAIAQIBAT8Qwe6NlVdRRVCJgJvnwlmQeIuWF3LrV055D3P/xAAlEAEAAQQBAwQDAQAAAAAAAAABEQAhMUFhEFFxIDCRoUDB8IH/2gAIAQEAAT8Q/GatUz8SUlgAKu4CxmjfzQJjhAHy0VcPzHMQ8w1aRUHLIWycA7tapsXINLcTcTCNz0lCimMc7eVbrl6XLulN53ku5ye1F1FKqCMW8zQ3bPDBZqUHIx0kTsSHRzNh27wcfxH66DJVNkgkXMl/MZ1ThSR7KbjBIN8xrpnQ6ZArk3a0bmN053tBE5i51SyIRLD2ogmVDC9pM6VzLz6G6KSmy5GuTW2M0D12WTSHTEoQDaSzcVG+FEkihhAhfaMwjTF9mRZdgSx3cWvQhxiEB0joZHXiSmApbEI7PR7byW9DZSJQpO1A6EcRp+a68DRBhALJ8yzRErZVIGwwIstZAEuV6OAjEIDpHQ068SV/Ffvq1UQWVbBRQ1uk31EQ4OfZUaehO9P8hhyvb2VB7PBR/9kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==
+ 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, # other element would receive the click
- )
- set(
- css: '#password',
- value: twitter_config[:twitter_user_pw],
- no_click: true, # other element would receive the click
- )
- click(css: '#allow')
-
- #watch_for(
- # css: '.notice.callback',
- # value: 'Redirecting you back to the application',
- #)
-
- watch_for(
- css: '.content.active .modal',
- value: 'Search Terms',
- )
-
- # add hash tag to search
- click(css: '.content.active .modal .js-searchTermAdd')
- set(css: '.content.active .modal [name="search::term"]', value: hash)
- select(css: '.content.active .modal [name="search::group_id"]', value: 'Users')
- select(css: '.content.active .modal [name="direct_messages::group_id"]', value: 'Users')
- click(css: '.content.active .modal .js-submit')
- modal_disappear
-
- watch_for(
- css: '.content.active',
- value: 'Bob Mutschler',
- )
- watch_for(
- css: '.content.active',
- value: "@#{twitter_config[:twitter_user_login]}",
- )
- exists(
- css: '.content.active .main .action:nth-child(1)'
- )
- exists_not(
- css: '.content.active .main .action:nth-child(2)'
- )
-
- # add account again
- click(css: '.content.active .js-new')
-
- sleep 10
-
- click(css: '#allow')
-
- watch_for(
- css: '.content.active .modal',
- value: 'Search Terms',
- )
-
- click(css: '.content.active .modal .js-close')
-
- watch_for(
- css: '.content.active',
- value: 'Bob Mutschler',
- )
- watch_for(
- css: '.content.active',
- value: "@#{twitter_config[:twitter_user_login]}",
- )
- exists(
- css: '.content.active .main .action:nth-child(1)'
- )
- exists_not(
- css: '.content.active .main .action:nth-child(2)'
- )
-
- # wait till new streaming of channel is active
- sleep 80
-
- # start tweet from customer
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = twitter_config[:consumer_key]
- config.consumer_secret = twitter_config[:consumer_secret]
- config.access_token = twitter_config[:twitter_customer_token]
- config.access_token_secret = twitter_config[:twitter_customer_token_secret]
- end
-
- text = "Today #{rand_word}... #{hash} #{hash_gen}"
- tweet = client.update(
- text,
- )
-
- # watch till tweet is in app
- click(text: 'Overviews')
-
- # enable full overviews
- execute(
- js: '$(".content.active .sidebar").css("display", "block")',
- )
-
- click(text: 'Unassigned & Open')
-
- watch_for(
- css: '.content.active',
- value: hash,
- timeout: 36,
- )
-
- ticket_open_by_title(
- title: hash,
- )
-
- # reply via app
- click(css: '.content.active [data-type="twitterStatusReply"]')
-
- ticket_update(
- data: {
- body: '@dzucker6 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890',
- },
- do_not_submit: true,
- )
- click(
- css: '.content.active .js-submit',
- )
- sleep 10
- click(
- css: '.content.active .js-reset',
- )
- sleep 2
-
- match_not(
- css: '.content.active',
- value: '1234567890',
- )
-
- click(css: '.content.active [data-type="twitterStatusReply"]')
- sleep 2
-
- re_hash = "#{hash}re#{rand(99_999)}"
-
- ticket_update(
- data: {
- body: "@dzucker6 #{rand_word} reply #{re_hash} #{rand(999_999)}",
- },
- )
- sleep 20
-
- match(
- css: '.content.active .ticket-article',
- value: re_hash,
- )
-
- # watch till tweet reached customer
- sleep 10
- text = nil
- client.search(re_hash, result_type: 'mixed').collect do |local_tweet|
- text = local_tweet.text
- end
- assert(text)
-
- end
-
- def reply_direct_message
- twitter_config
-
- @browser = browser_instance
- login(
- username: 'master@example.com',
- password: 'test',
- url: browser_url,
- auto_wizard: true,
- )
- tasks_close_all()
-
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = twitter_config[:consumer_key]
- config.consumer_secret = twitter_config[:consumer_secret]
- config.access_token = twitter_config[:twitter_customer_token]
- config.access_token_secret = twitter_config[:twitter_customer_token_secret]
- end
-
- text = "Today #{rand_word}... #{hash} #{hash_gen}"
- tweet = client.create_direct_message(
- "@#{twitter_config[:twitter_user_login]}",
- text,
- )
-
- # watch till tweet is in app
- click(text: 'Overviews')
-
- # enable full overviews
- execute(
- js: '$(".content.active .sidebar").css("display", "block")',
- )
-
- click(text: 'Unassigned & Open')
-
- watch_for(
- css: '.content.active',
- value: hash,
- timeout: 36,
- )
-
- ticket_open_by_title(
- title: hash,
- )
-
- # reply via app
- click(css: '.content.active [data-type="twitterStatusReply"]')
-
- ticket_update(
- data: {
- body: '@dzucker6 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890',
- },
- do_not_submit: true,
- )
- click(
- css: '.content.active .js-submit',
- )
- sleep 10
- click(
- css: '.content.active .js-reset',
- )
- sleep 2
-
- match_not(
- css: '.content.active',
- value: '1234567890',
- )
-
- click(css: '.content.active [data-type="twitterStatusReply"]')
- sleep 2
-
- re_hash = "#{hash}re#{rand(99_999)}"
-
- ticket_update(
- data: {
- body: "@dzucker6 #{rand_word} reply #{re_hash} #{rand(999_999)}",
- },
- )
- sleep 20
-
- match(
- css: '.content.active .ticket-article',
- value: re_hash,
- )
-
- # watch till tweet reached customer
- sleep 10
- text = nil
- client.search(re_hash, result_type: 'mixed').collect do |local_tweet|
- text = local_tweet.text
- end
- assert(text)
- end
-
- def hash_gen
- (0...10).map { ('a'..'z').to_a[rand(26)] }.join + rand(999).to_s
- end
-
- def rand_word
- words = [
- 'dog',
- 'cat',
- 'house',
- 'home',
- 'yesterday',
- 'tomorrow',
- 'new york',
- 'berlin',
- 'coffee script',
- 'java script',
- 'bob smith',
- 'be open',
- 'really nice',
- 'stay tuned',
- 'be a good boy',
- 'invent new things',
- ]
- words[rand(words.length)]
- end
-
- def twitter_config
- # app config
- if !ENV['TWITTER_BT_CONSUMER_KEY']
- raise "ERROR: Need TWITTER_BT_CONSUMER_KEY - hint TWITTER_BT_CONSUMER_KEY='1234'"
- end
-
- consumer_key = ENV['TWITTER_BT_CONSUMER_KEY']
- if !ENV['TWITTER_BT_CONSUMER_SECRET']
- raise "ERROR: Need TWITTER_BT_CONSUMER_SECRET - hint TWITTER_BT_CONSUMER_SECRET='1234'"
- end
-
- consumer_secret = ENV['TWITTER_BT_CONSUMER_SECRET']
-
- if !ENV['TWITTER_BT_USER_LOGIN']
- raise "ERROR: Need TWITTER_BT_USER_LOGIN - hint TWITTER_BT_USER_LOGIN='1234'"
- end
-
- twitter_user_login = ENV['TWITTER_BT_USER_LOGIN']
-
- if !ENV['TWITTER_BT_USER_PW']
- raise "ERROR: Need TWITTER_BT_USER_PW - hint TWITTER_BT_USER_PW='1234'"
- end
-
- twitter_user_pw = ENV['TWITTER_BT_USER_PW']
-
- if !ENV['TWITTER_BT_CUSTOMER_TOKEN']
- raise "ERROR: Need TWITTER_BT_CUSTOMER_TOKEN - hint TWITTER_BT_CUSTOMER_TOKEN='1234'"
- end
-
- twitter_customer_token = ENV['TWITTER_BT_CUSTOMER_TOKEN']
-
- if !ENV['TWITTER_BT_CUSTOMER_TOKEN_SECRET']
- raise "ERROR: Need TWITTER_BT_CUSTOMER_TOKEN_SECRET - hint TWITTER_BT_CUSTOMER_TOKEN_SECRET='1234'"
- end
-
- twitter_customer_token_secret = ENV['TWITTER_BT_CUSTOMER_TOKEN_SECRET']
-
- hash = {
- consumer_key: consumer_key,
- consumer_secret: consumer_secret,
- twitter_user_login: twitter_user_login,
- twitter_user_pw: twitter_user_pw,
- twitter_customer_token: twitter_customer_token,
- twitter_customer_token_secret: twitter_customer_token_secret
- }
end
end
diff --git a/test/integration/twitter_test.rb b/test/integration/twitter_test.rb
deleted file mode 100644
index 542cd42bb..000000000
--- a/test/integration/twitter_test.rb
+++ /dev/null
@@ -1,904 +0,0 @@
-require 'integration_test_helper'
-
-class TwitterTest < ActiveSupport::TestCase
- self.test_order = :sorted
- self.use_transactional_tests = false
-
- # set system mode to done / to activate
- Setting.set('system_init_done', true)
-
- # needed to check correct behavior
- group = Group.create_if_not_exists(
- name: 'Twitter',
- note: 'All Tweets.',
- updated_by_id: 1,
- created_by_id: 1
- )
-
- {
- 'TWITTER_CONSUMER_KEY' => '1234',
- 'TWITTER_CONSUMER_SECRET' => '1234',
- 'TWITTER_SYSTEM_LOGIN' => '@system',
- 'TWITTER_SYSTEM_ID' => '1405469528',
- 'TWITTER_SYSTEM_TOKEN' => '1234',
- 'TWITTER_SYSTEM_TOKEN_SECRET' => '1234',
- 'TWITTER_CUSTOMER_LOGIN' => '@customer',
- 'TWITTER_CUSTOMER_TOKEN' => '1234',
- 'TWITTER_CUSTOMER_TOKEN_SECRET' => '1234',
- }.each do |key, example_value|
- next if ENV[key]
-
- raise "ERROR: Need ENV #{key} - hint: export #{key}='#{example_value}'"
- end
-
- # app config
- consumer_key = ENV['TWITTER_CONSUMER_KEY']
- consumer_secret = ENV['TWITTER_CONSUMER_SECRET']
-
- # armin_theo (is system and is following marion_bauer)
- system_login = ENV['TWITTER_SYSTEM_LOGIN']
- system_id = ENV['TWITTER_SYSTEM_ID']
- system_login_without_at = system_login[1, system_login.length]
- system_token = ENV['TWITTER_SYSTEM_TOKEN']
- system_token_secret = ENV['TWITTER_SYSTEM_TOKEN_SECRET']
- hash_tag1 = "#zarepl#{rand(999)}"
- hash_tag2 = "#citheo#{rand(999)}"
-
- # me_bauer (is customer and is following armin_theo)
- customer_login = ENV['TWITTER_CUSTOMER_LOGIN']
- customer_login_without_at = customer_login[1, customer_login.length]
- customer_token = ENV['TWITTER_CUSTOMER_TOKEN']
- customer_token_secret = ENV['TWITTER_CUSTOMER_TOKEN_SECRET']
-
- # ensure channel configuration
- Channel.where(area: 'Twitter::Account').each(&:destroy)
-
- channel = Channel.create!(
- area: 'Twitter::Account',
- options: {
- adapter: 'twitter',
- auth: {
- consumer_key: consumer_key,
- consumer_secret: consumer_secret,
- oauth_token: system_token,
- oauth_token_secret: system_token_secret,
- },
- user: {
- screen_name: system_login,
- id: system_id,
- },
- sync: {
- track_retweets: true,
- search: [
- {
- term: hash_tag2,
- group_id: group.id,
- },
- {
- term: hash_tag1,
- group_id: 1,
- },
- ],
- mentions: {
- group_id: group.id,
- },
- direct_messages: {
- group_id: group.id,
- }
- }
- },
- active: true,
- created_by_id: 1,
- updated_by_id: 1,
- )
-
- test 'a new outbound and reply' do
-
- hash = "#{hash_tag2}#{rand(999_999)}"
- user = User.find(2)
- text = "Today the weather is really #{rand_word}... #{hash}"
- ticket = Ticket.create!(
- title: text[0, 40],
- customer_id: user.id,
- group_id: group.id,
- state: Ticket::State.find_by(name: 'new'),
- priority: Ticket::Priority.find_by(name: '2 normal'),
- preferences: {
- channel_id: channel.id,
- },
- 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,
- )
-
- Scheduler.worker(true)
-
- article = Ticket::Article.find(article.id)
- assert(article, "outbound article created, text: #{text}")
- assert_equal(system_login, article.from, 'ticket article from')
- assert_equal('', article.to, 'ticket article to')
-
- ticket = Ticket.find(article.ticket_id)
- ticket.state = Ticket::State.find_by(name: 'closed')
- ticket.save!
-
- # reply by me_bauer
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = customer_token
- config.access_token_secret = customer_token_secret
- end
-
- tweet_found = false
- client.user_timeline(system_login_without_at).each do |tweet|
- next if tweet.id.to_s != article.message_id.to_s
-
- tweet_found = true
- break
- end
- assert(tweet_found, "found outbound '#{text}' tweet '#{article.message_id}'")
-
- reply_text = "#{system_login} on my side the weather is nice, too! 😍😍😍 #weather#{rand(999_999)}"
- tweet = client.update(
- reply_text,
- {
- in_reply_to_status_id: article.message_id
- }
- )
-
- # fetch check system account
- sleep 10
- article = nil
- 2.times do
- Channel.fetch
-
- # check if follow up article has been created
- article = Ticket::Article.find_by(message_id: tweet.id)
- break if article
-
- sleep 10
- end
-
- assert(article, "article tweet '#{tweet.id}' imported")
- assert_equal(customer_login, article.from, 'ticket article from')
- assert_equal(system_login, article.to, 'ticket article to')
- assert_equal(tweet.id.to_s, article.message_id, 'ticket article inbound message_id')
- assert_equal(2, article.ticket.articles.count, 'ticket article inbound count')
- assert_equal(reply_text.utf8_to_3bytesutf8, ticket.articles.last.body, 'ticket article inbound body')
-
- assert_equal('open', ticket.reload.state.name)
-
- channel = Channel.find(channel.id)
- assert_equal('', channel.last_log_out)
- assert_equal('ok', channel.status_out)
- assert_equal('', channel.last_log_in)
- assert_equal('ok', channel.status_in)
- end
-
- test 'b new inbound and reply' do
-
- # new tweet by me_bauer
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = customer_token
- config.access_token_secret = customer_token_secret
- end
-
- hash = "#{hash_tag1} ##{hash_gen}"
- text = "Today #{rand_word}... #{hash}"
- tweet = client.update(
- text,
- )
-
- # fetch check system account
- sleep 20
- article = nil
- 2.times do
- Channel.fetch
-
- # check if ticket and article has been created
- article = Ticket::Article.find_by(message_id: tweet.id)
- break if article
-
- sleep 20
- end
- assert(article, "Can't find tweet id #{tweet.id}/#{text}")
- assert_equal(customer_login, article.from, 'ticket article from')
- assert_nil(article.to, 'ticket article to')
- ticket = article.ticket
- assert_equal('new', ticket.reload.state.name)
-
- # send reply
- reply_text = "#{customer_login} on my side #weather#{hash_gen}"
- article = Ticket::Article.create!(
- ticket_id: ticket.id,
- body: reply_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,
- )
-
- Scheduler.worker(true)
- assert_equal('open', ticket.reload.state.name)
-
- article = Ticket::Article.find(article.id)
- assert(article, "outbound article created, text: #{reply_text}")
- assert_equal(system_login, article.from, 'ticket article from')
- assert_equal(customer_login, article.to, 'ticket article to')
- sleep 5
- tweet_found = false
- client.user_timeline(system_login_without_at).each do |local_tweet|
- sleep 10
- next if local_tweet.id.to_s != article.message_id.to_s
-
- tweet_found = true
- break
- end
- assert(tweet_found, "found outbound '#{reply_text}' tweet '#{article.message_id}'")
-
- channel = Channel.find(channel.id)
- assert_equal('', channel.last_log_out)
- assert_equal('ok', channel.status_out)
- assert_equal('', channel.last_log_in)
- assert_equal('ok', channel.status_in)
-
- ticket = Ticket.find(article.ticket_id)
- ticket.state = Ticket::State.find_by(name: 'closed')
- ticket.save!
-
- # reply with zammad user directly
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = system_token
- config.access_token_secret = system_token_secret
- end
-
- hash = "#{hash_tag1} ##{hash_gen}"
- text = "Today #{system_login} #{rand_word}... #{hash}"
- tweet = client.update(
- text,
- )
-
- # fetch check system account
- sleep 20
- article = nil
- 2.times do
- Channel.fetch
-
- # check if ticket and article has been created
- article = Ticket::Article.find_by(message_id: tweet.id)
- break if article
-
- sleep 20
- end
-
- assert(article, "Can't find tweet id #{tweet.id}/#{text}")
- assert_equal('closed', ticket.reload.state.name)
- end
-
- test 'c new by direct message inbound' do
-
- # cleanup direct messages of system
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = system_token
- config.access_token_secret = system_token_secret
- end
- dms = client.direct_messages(count: 100)
- dms.each do |dm|
- client.destroy_direct_message(dm.id)
- end
- client = Twitter::REST::Client.new(
- consumer_key: consumer_key,
- consumer_secret: consumer_secret,
- access_token: customer_token,
- access_token_secret: customer_token_secret
- )
- dms = client.direct_messages(count: 100)
- dms.each do |dm|
- client.destroy_direct_message(dm.id)
- end
- hash = "#citheo44 #{hash_gen}"
- text = "How about #{rand_word} the details? #{hash} - #{'Long' * 50}"
- dm = client.create_direct_message(
- system_login_without_at,
- text,
- )
- assert(dm, "dm with ##{hash} created")
-
- # fetch check system account
- sleep 15
- article = nil
- 1.times do
- Channel.fetch
-
- # check if ticket and article has been created
- article = Ticket::Article.find_by(message_id: dm.id)
- break if article
-
- sleep 10
- end
-
- assert(article, "inbound article '#{text}' created")
- assert_equal(customer_login, article.from, 'ticket article from')
- assert_equal(text, article.body, 'ticket article body')
- ticket = article.ticket
- assert(ticket, 'ticket of inbound article exists')
- assert(ticket.articles, 'ticket.articles exists')
- assert_equal(1, ticket.articles.count, 'ticket article inbound count')
- assert_equal(ticket.state.name, 'new')
-
- # reply via ticket
- outbound_article = Ticket::Article.create!(
- ticket_id: ticket.id,
- to: customer_login,
- body: "Will call you later #{rand_word}!",
- type: Ticket::Article::Type.find_by(name: 'twitter direct-message'),
- sender: Ticket::Article::Sender.find_by(name: 'Agent'),
- internal: false,
- updated_by_id: 1,
- created_by_id: 1,
- )
-
- Scheduler.worker(true)
-
- outbound_article = Ticket::Article.find(outbound_article.id)
- assert(outbound_article, 'outbound article created')
- assert_equal(2, outbound_article.ticket.articles.count, 'ticket article outbound count')
- assert_equal(system_login, outbound_article.from, 'ticket article from')
- assert_equal(customer_login, outbound_article.to, 'ticket article to')
- ticket.state = Ticket::State.find_by(name: 'pending reminder')
- ticket.save
-
- text = "#{rand_word}. #{hash}"
- dm = client.create_direct_message(
- system_login_without_at,
- text,
- )
- assert(dm, "second dm with ##{hash} created")
-
- # fetch check system account
- sleep 15
- article = nil
- 1.times do
- Channel.fetch
-
- # check if ticket and article has been created
- article = Ticket::Article.find_by(message_id: dm.id)
- break if article
-
- sleep 10
- end
-
- assert(article, "inbound article '#{text}' created")
- assert_equal(customer_login, article.from, 'ticket article inbound from')
- assert_equal(system_login, article.to, 'ticket article inbound to')
- assert_equal(article.ticket.id, ticket.id, 'still the same ticket')
- ticket = article.ticket
- assert(ticket, 'ticket of inbound article exists')
- assert(ticket.articles, 'ticket.articles exists')
- assert_equal(3, ticket.articles.count, 'ticket article inbound count')
- assert_equal(ticket.state.name, 'open')
-
- # close dm ticket, next dm should open a new
- ticket.state = Ticket::State.find_by(name: 'closed')
- ticket.save
-
- text = "Thanks #{rand_word} for your call. I just have one question. #{hash}"
- dm = client.create_direct_message(
- system_login_without_at,
- text,
- )
- assert(dm, "third dm with ##{hash} created")
-
- # fetch check system account
- sleep 15
- article = nil
- 1.times do
- Channel.fetch
-
- # check if ticket and article has been created
- article = Ticket::Article.find_by(message_id: dm.id)
- break if article
-
- sleep 15
- end
-
- assert(article, "inbound article '#{text}' created with dm id #{dm.id}")
- assert_equal(customer_login, article.from, 'ticket article inbound from')
- assert_equal(system_login, article.to, 'ticket article inbound to')
- ticket = article.ticket
- assert(ticket, 'ticket of inbound article exists')
- assert(ticket.articles, 'ticket.articles exists')
- assert_equal(1, ticket.articles.count, 'ticket article inbound count')
- assert_equal(ticket.state.name, 'new')
-
- channel = Channel.find(channel.id)
- assert_equal('', channel.last_log_out)
- assert_equal('ok', channel.status_out)
- assert_equal('', channel.last_log_in)
- assert_equal('ok', channel.status_in)
- end
-
- test 'c new by direct message outbound without required parameters' do
-
- # cleanup direct messages of system
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = system_token
- config.access_token_secret = system_token_secret
- end
- dms = client.direct_messages(count: 100)
- dms.each do |dm|
- client.destroy_direct_message(dm.id)
- end
- client = Twitter::REST::Client.new(
- consumer_key: consumer_key,
- consumer_secret: consumer_secret,
- access_token: customer_token,
- access_token_secret: customer_token_secret
- )
- dms = client.direct_messages(count: 100)
- dms.each do |dm|
- client.destroy_direct_message(dm.id)
- end
- hash = "#citheo44 #{hash_gen}"
- text = "How about #{rand_word} the details? #{hash} - #{'Long' * 50}"
- dm = client.create_direct_message(
- system_login_without_at,
- text,
- )
- assert(dm, "dm with ##{hash} created")
-
- # fetch check system account
- sleep 15
- article = nil
- 1.times do
- Channel.fetch
-
- # check if ticket and article has been created
- article = Ticket::Article.find_by(message_id: dm.id)
- break if article
-
- sleep 10
- end
-
- assert(article, "inbound article '#{text}' created")
- assert_equal(customer_login, article.from, 'ticket article from')
- assert_equal(text, article.body, 'ticket article body')
- ticket = article.ticket
- assert(ticket, 'ticket of inbound article exists')
- assert(ticket.articles, 'ticket.articles exists')
- assert_equal(1, ticket.articles.count, 'ticket article inbound count')
- assert_equal(ticket.state.name, 'closed')
-
- # reply via ticket
- reply = assert_raises(Exceptions::UnprocessableEntity) do
- Ticket::Article.create!(
- ticket_id: ticket.id,
- in_reply_to: '123456789',
- body: "Will call you later #{rand_word}!",
- type: Ticket::Article::Type.find_by(name: 'twitter direct-message'),
- sender: Ticket::Article::Sender.find_by(name: 'Agent'),
- internal: false,
- updated_by_id: 1,
- created_by_id: 1,
- )
- end
-
- assert_equal('twitter to: parameter is missing', reply.message)
- end
-
- test 'd track_retweets enabled' do
-
- # enable track_retweets
- channel[:options]['sync']['track_retweets'] = true
- channel.save!
-
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = system_token
- config.access_token_secret = system_token_secret
- end
-
- hash = "#{hash_tag1} ##{hash_gen}"
- text = "Retweet me - I'm #{system_login} - #{rand_word}... #{hash}"
- tweet = client.update(text)
-
- client = Twitter::REST::Client.new(
- consumer_key: consumer_key,
- consumer_secret: consumer_secret,
- access_token: customer_token,
- access_token_secret: customer_token_secret
- )
-
- retweet = client.retweet(tweet).first
-
- # fetch check system account
- sleep 15
- article = nil
- 2.times do
- Channel.fetch
-
- # check if ticket and article has been created
- article = Ticket::Article.find_by(message_id: retweet.id)
- break if article
-
- sleep 10
- end
-
- assert(article, "retweet article '#{text}' created")
- end
-
- test 'e track_retweets disabled' do
-
- # disable track_retweets
- channel[:options]['sync']['track_retweets'] = false
- channel.save!
-
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = system_token
- config.access_token_secret = system_token_secret
- end
-
- hash = "#{hash_tag1} ##{hash_gen}"
- text = "Retweet me - I'm #{system_login} - #{rand_word}... #{hash}"
- tweet = client.update(text)
-
- client = Twitter::REST::Client.new(
- consumer_key: consumer_key,
- consumer_secret: consumer_secret,
- access_token: customer_token,
- access_token_secret: customer_token_secret
- )
-
- retweet = client.retweet(tweet).first
-
- # fetch check system account
- sleep 15
- article = nil
- 2.times do
- Channel.fetch
-
- # check if ticket and article has been created
- article = Ticket::Article.find_by(message_id: retweet.id)
- break if article
-
- sleep 10
- end
-
- assert_nil(article, "retweet article '#{text}' not created")
- end
-
- test 'f streaming test' do
- thread = Thread.new do
- Channel.stream
- end
- sleep 10
-
- # new tweet I - by me_bauer
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = customer_token
- config.access_token_secret = customer_token_secret
- end
-
- hash = "#{hash_tag1} ##{hash_gen}"
- text = "Today... #{rand_word} #{hash}"
- tweet = client.update(
- text,
- )
-
- article = nil
- 5.times do
- Scheduler.worker(true)
- article = Ticket::Article.find_by(message_id: tweet.id)
- break if article
-
- ActiveRecord::Base.clear_all_connections!
- ActiveRecord::Base.connection.query_cache.clear
- sleep 10
- end
-
- assert(article, "article from customer with text '#{text}' message_id '#{tweet.id}' created")
- assert_equal(customer_login, article.from, 'ticket article from')
- assert_nil(article.to, 'ticket article to')
-
- # new tweet II - by me_bauer
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = customer_token
- config.access_token_secret = customer_token_secret
- end
- hash = "#{hash_tag1} ##{rand(999_999)}"
- text = "Today... #{rand_word} #{hash}"
- tweet = client.update(
- text,
- )
-
- article = nil
- 5.times do
- Scheduler.worker(true)
- article = Ticket::Article.find_by(message_id: tweet.id)
- break if article
-
- ActiveRecord::Base.clear_all_connections!
- ActiveRecord::Base.connection.query_cache.clear
- sleep 10
- end
- assert(article, "article from customer with text '#{text}' message_id '#{tweet.id}' created")
- assert_equal(customer_login, article.from, 'ticket article from')
- assert_nil(article.to, 'ticket article to')
-
- # send reply
- reply_text = "RE #{text}"
- article = Ticket::Article.create!(
- ticket_id: article.ticket_id,
- body: reply_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,
- )
-
- Scheduler.worker(true)
-
- article = Ticket::Article.find(article.id)
- assert(article, "outbound article created, text: #{reply_text}")
- assert_equal(system_login, article.from, 'ticket article from')
- assert_equal('', article.to, 'ticket article to')
- sleep 5
-
- tweet_found = false
- client.user_timeline(system_login_without_at).each do |local_tweet|
- sleep 10
- next if local_tweet.id.to_s != article.message_id.to_s
-
- tweet_found = true
- break
- end
- assert(tweet_found, "found outbound '#{reply_text}' tweet '#{article.message_id}'")
-
- count = Ticket::Article.where(message_id: article.message_id).count
- assert_equal(1, count, "tweet #{article.message_id}")
-
- channel_id = article.ticket.preferences[:channel_id]
- assert(channel_id)
- channel = Channel.find(channel_id)
- assert_equal('', channel.last_log_out)
- assert_equal('ok', channel.status_out)
-
- # get dm via stream
- client = Twitter::REST::Client.new(
- consumer_key: consumer_key,
- consumer_secret: consumer_secret,
- access_token: customer_token,
- access_token_secret: customer_token_secret
- )
- hash = "#citheo44#{rand(999_999)}"
- text = "How about the #{rand_word}? #{hash}"
- dm = client.create_direct_message(
- system_login_without_at,
- text,
- )
- assert(dm, "dm with ##{hash} created")
-
- article = nil
- 5.times do
- Scheduler.worker(true)
- article = Ticket::Article.find_by(message_id: dm.id)
- break if article
-
- sleep 10
- end
- assert(article, "inbound article '#{text}' message_id '#{dm.id}' created")
- assert_equal(customer_login, article.from, 'ticket article from')
- assert_equal(system_login, article.to, 'ticket article to')
- thread.exit
- thread.join
- end
-
- test 'g streaming test retweet enabled' do
- thread = Thread.new do
- # enable track_retweets in current thread
- # since Threads are not spawned in the same scope
- # as the current test is running in .....
- channel_thread = Channel.find(channel.id)
- channel_thread[:options]['sync']['track_retweets'] = true
- channel_thread.save!
-
- Channel.stream
- end
- sleep 10
-
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = system_token
- config.access_token_secret = system_token_secret
- end
-
- hash = "#{hash_tag1} ##{hash_gen}"
- text = "Retweet me - I'm #{system_login} - #{rand_word}... #{hash}"
- tweet = client.update(text)
-
- client = Twitter::REST::Client.new(
- consumer_key: consumer_key,
- consumer_secret: consumer_secret,
- access_token: customer_token,
- access_token_secret: customer_token_secret
- )
-
- retweet = client.retweet(tweet).first
-
- # fetch check system account
- sleep 15
- article = nil
- 2.times do
- Channel.fetch
-
- # check if ticket and article has been created
- article = Ticket::Article.find_by(message_id: retweet.id)
- break if article
-
- ActiveRecord::Base.clear_all_connections!
- ActiveRecord::Base.connection.query_cache.clear
- sleep 10
- end
-
- assert(article, "retweet article '#{text}' created")
-
- thread.exit
- thread.join
- end
-
- test 'h streaming test retweet disabled' do
- thread = Thread.new do
- # disable track_retweets in current thread
- # since Threads are not spawned in the same scope
- # as the current test is running in .....
- channel_thread = Channel.find(channel.id)
- channel_thread[:options]['sync']['track_retweets'] = false
- channel_thread.save!
-
- Channel.stream
- end
- sleep 10
-
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = system_token
- config.access_token_secret = system_token_secret
- end
-
- hash = "#{hash_tag1} ##{hash_gen}"
- text = "Retweet me - I'm #{system_login} - #{rand_word}... #{hash}"
- tweet = client.update(text)
-
- client = Twitter::REST::Client.new(
- consumer_key: consumer_key,
- consumer_secret: consumer_secret,
- access_token: customer_token,
- access_token_secret: customer_token_secret
- )
-
- retweet = client.retweet(tweet).first
-
- # fetch check system account
- article = nil
- 4.times do
- # check if ticket and article has been created
- article = Ticket::Article.find_by(message_id: retweet.id)
- break if article
-
- sleep 10
- end
-
- assert_nil(article, "retweet article '#{text}' not created")
-
- thread.exit
- thread.join
- end
-
- test 'i restart stream after config of channel has changed' do
- hash = "#citheo#{rand(999)}"
-
- thread = Thread.new do
- Channel.stream
- sleep 10
- item = {
- term: hash,
- group_id: group.id,
- }
- channel_thread = Channel.find(channel.id)
- channel_thread[:options]['sync']['search'].push item
- channel_thread.save!
- end
-
- sleep 60
-
- # new tweet - by me_bauer
- client = Twitter::REST::Client.new do |config|
- config.consumer_key = consumer_key
- config.consumer_secret = consumer_secret
- config.access_token = customer_token
- config.access_token_secret = customer_token_secret
- end
-
- hash = "#{hash_tag1} ##{hash_gen}"
- text = "Today... #{rand_word} #{hash}"
- tweet = client.update(
- text,
- )
- article = nil
- 5.times do
- Channel.fetch
- Scheduler.worker(true)
- article = Ticket::Article.find_by(message_id: tweet.id)
- break if article
-
- ActiveRecord::Base.clear_all_connections!
- ActiveRecord::Base.connection.query_cache.clear
- sleep 10
- end
- assert(article, "article from customer with text '#{text}' message_id '#{tweet.id}' created")
- assert_equal(customer_login, article.from, 'ticket article from')
- assert_nil(article.to, 'ticket article to')
-
- thread.exit
- thread.join
-
- channel_thread = Channel.find(channel.id)
- channel_thread[:options]['sync']['search'].pop
- channel_thread.save!
- end
-
- def hash_gen
- rand(999).to_s + (0...10).map { ('a'..'z').to_a[rand(26)] }.join
- end
-
- def rand_word
- [
- 'dog',
- 'cat',
- 'house',
- 'home',
- 'yesterday',
- 'tomorrow',
- 'new york',
- 'berlin',
- 'coffee script',
- 'java script',
- 'bob smith',
- 'be open',
- 'really nice',
- 'stay tuned',
- 'be a good boy',
- 'invent new things',
- ].sample
- end
-
-end
diff --git a/test/unit/ticket_article_twitter_test.rb b/test/unit/ticket_article_twitter_test.rb
deleted file mode 100644
index d23756021..000000000
--- a/test/unit/ticket_article_twitter_test.rb
+++ /dev/null
@@ -1,194 +0,0 @@
-require 'test_helper'
-
-class TicketArticleTwitter < ActiveSupport::TestCase
-
- test 'preferences cleanup' 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: TweetBase.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: preferences,
- updated_by_id: 1,
- created_by_id: 1,
- )
- assert(article1.preferences[:twitter])
- assert_equal(1_234_567_890, article1.preferences[:twitter][:mention_ids][0])
- assert_equal(ActiveSupport::HashWithIndifferentAccess, article1.preferences[:twitter][:geo].class)
- assert(article1.preferences[:twitter][:geo].blank?)
- assert_equal(ActiveSupport::HashWithIndifferentAccess, article1.preferences[:twitter][:place].class)
- assert(article1.preferences[:twitter][:place].blank?)
-
- 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 = TweetBase.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: preferences,
- updated_by_id: 1,
- created_by_id: 1,
- )
- assert(article2.preferences[:twitter])
- assert_equal(1_234_567_890, article2.preferences[:twitter][:mention_ids][0])
- assert_equal(ActiveSupport::HashWithIndifferentAccess, article2.preferences[:twitter][:geo].class)
- assert(article2.preferences[:twitter][:geo].blank?)
- assert_equal(ActiveSupport::HashWithIndifferentAccess, article2.preferences[:twitter][:place].class)
- assert(article2.preferences[:twitter][:place].blank?)
-
- 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: TweetBase.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,
- )
- assert(article3.preferences[:twitter])
- assert_equal(1_234_567_890, article3.preferences[:twitter][:mention_ids][0])
- assert_equal(ActiveSupport::HashWithIndifferentAccess, article3.preferences[:twitter][:geo].class)
- assert_equal({ 'coordinates' => [1, 1] }, article3.preferences[:twitter][:geo])
- assert_equal(ActiveSupport::HashWithIndifferentAccess, article3.preferences[:twitter][:place].class)
- assert_equal({ 'country' => 'da', 'name' => 'do', 'woeid' => 1, 'id' => 1 }, article3.preferences[:twitter][:place])
-
- 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 = TweetBase.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,
- )
- assert(article4.preferences[:twitter])
- assert_equal(1_234_567_890, article4.preferences[:twitter][:mention_ids][0])
- assert_equal(ActiveSupport::HashWithIndifferentAccess, article4.preferences[:twitter][:geo].class)
- assert_equal({ 'coordinates' => [1, 1] }, article4.preferences[:twitter][:geo])
- assert_equal(ActiveSupport::HashWithIndifferentAccess, article4.preferences[:twitter][:place].class)
- assert_equal({ 'country' => 'da', 'name' => 'do', 'woeid' => 1, 'id' => 1 }, article4.preferences[:twitter][:place])
-
- end
-
-end