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

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

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:



81
82
83
# File 'lib/x_twitter_scraper/resources/x/dm.rb', line 81

def initialize(client:)
  @client = client
end

Instance Method Details

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

Some parameter documentations has been truncated, see Models::X::DmRetrieveHistoryParams for more details.

Get DM conversation history

Parameters:

  • user_id (String)

    Target user ID

  • account (String)

    X handle (without the @ prefix) of the connected X account used to read the co

  • 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:



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/x_twitter_scraper/resources/x/dm.rb', line 31

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:, idempotency_key:, media_ids: nil, request_options: {}) ⇒ XTwitterScraper::Models::X::DmSendResponse

Some parameter documentations has been truncated, see Models::X::DmSendParams for more details.

Send direct message

Parameters:

  • user_id (String)

    Path param: Recipient user ID

  • account (String)

    Body param: X account (@username or ID) sending the DM

  • text (String)

    Body param

  • idempotency_key (String)

    Header param: Generate one unique value for each intended write. Reuse it only w

  • media_ids (Array<String>)

    Body param: Optional array containing exactly 1 uploaded media ID.

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

Returns:

See Also:



65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/x_twitter_scraper/resources/x/dm.rb', line 65

def send_(user_id, params)
  parsed, options = XTwitterScraper::X::DmSendParams.dump_request(params)
  header_params = {idempotency_key: "idempotency-key"}
  @client.request(
    method: :post,
    path: ["x/dm/%1$s", user_id],
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    model: XTwitterScraper::Models::X::DmSendResponse,
    options: options
  )
end