Class: XTwitterScraper::Resources::X::Dm

Inherits:
Object
  • Object
show all
Defined in:
lib/x_twitter_scraper/resources/x/dm.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Dm

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Dm.

Parameters:



67
68
69
# File 'lib/x_twitter_scraper/resources/x/dm.rb', line 67

def initialize(client:)
  @client = client
end

Instance Method Details

#retrieve_history(user_id, cursor: nil, max_id: nil, request_options: {}) ⇒ XTwitterScraper::Models::X::DmRetrieveHistoryResponse

Get DM conversation history

Parameters:

  • user_id (String)

    Target user ID

  • cursor (String)

    Pagination cursor for DM history

  • max_id (String)

    Legacy pagination cursor (backward compat)

  • request_options (XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/x_twitter_scraper/resources/x/dm.rb', line 22

def retrieve_history(user_id, params = {})
  parsed, options = XTwitterScraper::X::DmRetrieveHistoryParams.dump_request(params)
  query = XTwitterScraper::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["x/dm/%1$s/history", user_id],
    query: query.transform_keys(max_id: "maxId"),
    model: XTwitterScraper::Models::X::DmRetrieveHistoryResponse,
    options: options
  )
end

#send_(user_id, account:, text:, media_ids: nil, reply_to_message_id: nil, request_options: {}) ⇒ XTwitterScraper::Models::X::DmSendResponse

Send direct message

Parameters:

  • user_id (String)

    Recipient user ID

  • account (String)

    X account (@username or ID) sending the DM

  • text (String)
  • media_ids (Array<String>)
  • reply_to_message_id (String)
  • request_options (XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



53
54
55
56
57
58
59
60
61
62
# File 'lib/x_twitter_scraper/resources/x/dm.rb', line 53

def send_(user_id, params)
  parsed, options = XTwitterScraper::X::DmSendParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["x/dm/%1$s", user_id],
    body: parsed,
    model: XTwitterScraper::Models::X::DmSendResponse,
    options: options
  )
end