class IgApi::Thread
Public Class Methods
new()
click to toggle source
# File lib/ig_api/thread.rb, line 6 def initialize @api = Http.singleton end
Public Instance Methods
configure_media(users, media_id, text)
click to toggle source
# File lib/ig_api/thread.rb, line 46 def configure_media(users, media_id, text) payload = { recipient_users: [users].to_json, client_context: IgApi::Http.generate_uuid, media_id: media_id } payload[:text] = text unless text.empty? response = @api.multipart(Constants::URL + 'direct_v2/threads/broadcast/media_share/?media_type=photo', payload) .with(session: @user[:session], ua: @user[:ua]) .exec response.body end
configure_story(users, media_id, text)
click to toggle source
# File lib/ig_api/thread.rb, line 62 def configure_story(users, media_id, text) payload = { action: 'send_item', _uuid: IgApi::Http.generate_uuid, client_context: IgApi::Http.generate_uuid, recipient_users: [users].to_json, story_media_id: media_id, reel_id: media_id.split('_')[1], text: text } signature = Http.generate_signature payload response = @api.post( Constants::URL + 'direct_v2/threads/broadcast/story_share/', "ig_sig_key_version=4&signed_body=#{signature}" ) .with(ua: @user[:ua], session: @user[:session]) .exec response.body end
configure_text(users, text)
click to toggle source
# File lib/ig_api/thread.rb, line 20 def configure_text(users, text) uris = URI.extract(text, %w[http https]) broadcast = 'text' body = { recipient_users: [users].to_json, client_context: Http.generate_uuid, } if uris.empty? body[:text] = text else broadcast = 'link' body[:link_text] = text body[:link_urls] = uris.to_json end response = @api.multipart(Constants::URL + "direct_v2/threads/broadcast/#{broadcast}/", body) .with(ua: @user[:ua], session: @user[:session]) .exec response.body end
using(user)
click to toggle source
# File lib/ig_api/thread.rb, line 10 def using(user) @user = { id: user.data[:id], session: user.session, ua: user.useragent } self end