Represents a direct message on Twitter between Twitter users.

Methods
Included Modules
Public Class methods
attributes()

Used as factory method callback

     # File lib/twitter/model.rb, line 280
280:       def attributes; @@ATTRIBUTES; end
create(params)

Creates a new direct message from the authenticated user of the given client context.

You MUST include a valid/authenticated client context in the given params argument.

For example:

 status = Twitter::Message.create(
   :text => 'I am shopping for flip flops',
   :receipient => 'anotherlogin',
   :client => client)

An ArgumentError will be raised if no valid client context is given in the params Hash. For example,

 status = Twitter::Status.create(:text => 'I am shopping for flip flops')

The above line of code will raise an ArgumentError.

The same is true when you do not provide any of the following key-value pairs in the params argument given:

  • text - the String that will be the message text to send to user
  • recipient - the user ID, screen_name or Twitter::User object representation of the recipient of the direct message

The Twitter::Message object returned after the direct message is successfully sent on the Twitter server side is returned from this method.

     # File lib/twitter/model.rb, line 314
314:       def create(params)
315:         client, text, recipient = params[:client], params[:text], params[:recipient]
316:         raise ArgumentError, 'Valid client context must be given' unless client.is_a?(Twitter::Client)
317:         raise ArgumentError, 'Message text must be supplied to send direct message' unless text.is_a?(String)
318:         raise ArgumentError, 'Recipient user must be specified to send direct message' unless [Twitter::User, Integer, String].member?(recipient.class)
319:         client.message(:post, text, recipient)
320:       end
find(id, client)

Raises NotImplementedError because currently Twitter doesn‘t provide a facility to retrieve one message by unique ID.

     # File lib/twitter/model.rb, line 285
285:       def find(id, client)
286:         raise NotImplementedError, 'Twitter has yet to implement a REST API for this.  This is not a Twitter4R library limitation.'
287:       end
Protected Instance methods
init()

Constructor callback

     # File lib/twitter/model.rb, line 325
325:       def init
326:         @sender = User.new(@sender) if @sender.is_a?(Hash)
327:         @recipient = User.new(@recipient) if @recipient.is_a?(Hash)
328:         @created_at = Time.parse(@created_at) if @created_at.is_a?(String)
329:       end