Class: Adparlor::Facebook::GraphApi::AdVideo

Inherits:
GraphObject
  • Object
show all
Includes:
Fields::AdVideo, Traits::Methods
Defined in:
lib/adparlor/facebook/graph_api/ad_video.rb

Constant Summary

Constants included from Fields::AdVideo

Fields::AdVideo::CREATE_FIELDS, Fields::AdVideo::FIELDS

Constants included from Fields::FieldDecorator

Fields::FieldDecorator::GLOBAL_FIELDS

Instance Attribute Summary

Attributes inherited from GraphObject

#access_token

Instance Method Summary collapse

Methods included from Traits::Methods

#create, #destroy, included, #update

Methods inherited from GraphObject

#batch, create, #create, data_pass_through, destroy, #destroy, get, #initialize, parse_data_for_collection, read, respond_for_data, #to_hash, #to_json, update, #update

Methods included from Api

#conn, #conn_multi, #delete, #get, #proxy_api_key

Methods included from Fields::FieldDecorator

included

Constructor Details

This class inherits a constructor from Adparlor::Facebook::GraphApi::GraphObject

Instance Method Details

#base_uriObject



13
14
15
# File 'lib/adparlor/facebook/graph_api/ad_video.rb', line 13

def base_uri
  'https://graph-video.facebook.com'
end

#pathObject

Raises:



21
22
23
24
25
26
27
28
# File 'lib/adparlor/facebook/graph_api/ad_video.rb', line 21

def path
  raise FbError.new('missing one of account_id, user_id, event_id, page_id or group_id required for video creation', 500) unless @account_id || @user_id || @event_id || @page_id || @group_id
  if @account_id
    "/act_#{@account_id}/advideos"
  else
    "/#{@user_id || @event_id || @page_id || @group_id}/videos"
  end
end

#post(path, options, _method = nil) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/adparlor/facebook/graph_api/ad_video.rb', line 30

def post(path, options, _method = nil)
  if @slideshow_spec
    super(path, options)
  else
    response = start_video_request(options)
    raise response['error']['message'] if response.key?('error')
    upload_session_id = response['upload_session_id']
    video_id = response['video_id']
    loop do
      response = upload_chunk(response['start_offset'], response['end_offset'], upload_session_id, options)
      break if response['start_offset'] == response['end_offset']
      sleep 5
    end
    response = finish_video_request(options, upload_session_id)
    if response['success']
      { id: video_id }
    else
      response
    end
  end
end

#thumbnailsObject



17
18
19
# File 'lib/adparlor/facebook/graph_api/ad_video.rb', line 17

def thumbnails
  @thumbnails ||= CollectionProxy.new VideoThumbnail, "/#{id}/thumbnails", access_token
end