directmessages.php
6.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<?php
/**
* @package Joomla.Platform
* @subpackage Twitter
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die();
/**
* Twitter API Direct Messages class for the Joomla Platform.
*
* @since 3.1.4
* @deprecated 4.0 Use the `joomla/twitter` package via Composer instead
*/
class JTwitterDirectmessages extends JTwitterObject
{
/**
* Method to get the most recent direct messages sent to the authenticating user.
*
* @param integer $since_id Returns results with an ID greater than (that is, more recent than) the specified ID.
* @param integer $max_id Returns results with an ID less than (that is, older than) or equal to the specified ID.
* @param integer $count Specifies the number of direct messages to try and retrieve, up to a maximum of 200.
* @param boolean $entities When set to true, each tweet will include a node called "entities,". This node offers a variety of metadata
* about the tweet in a discreet structure, including: user_mentions, urls, and hashtags.
* @param boolean $skip_status When set to either true, t or 1 statuses will not be included in the returned user objects.
*
* @return array The decoded JSON response
*
* @since 3.1.4
*/
public function getDirectMessages($since_id = 0, $max_id = 0, $count = 20, $entities = null, $skip_status = null)
{
// Check the rate limit for remaining hits
$this->checkRateLimit('direct_messages');
// Set the API path
$path = '/direct_messages.json';
// Check if since_id is specified.
if ($since_id)
{
$data['since_id'] = $since_id;
}
// Check if max_id is specified.
if ($max_id)
{
$data['max_id'] = $max_id;
}
// Check if count is specified.
if ($count)
{
$data['count'] = $count;
}
// Check if entities is specified.
if (!is_null($entities))
{
$data['include_entities'] = $entities;
}
// Check if skip_status is specified.
if (!is_null($skip_status))
{
$data['skip_status'] = $skip_status;
}
// Send the request.
return $this->sendRequest($path, 'GET', $data);
}
/**
* Method to get the most recent direct messages sent by the authenticating user.
*
* @param integer $since_id Returns results with an ID greater than (that is, more recent than) the specified ID.
* @param integer $max_id Returns results with an ID less than (that is, older than) or equal to the specified ID.
* @param integer $count Specifies the number of direct messages to try and retrieve, up to a maximum of 200.
* @param integer $page Specifies the page of results to retrieve.
* @param boolean $entities When set to true, each tweet will include a node called "entities,". This node offers a variety of metadata
* about the tweet in a discreet structure, including: user_mentions, urls, and hashtags.
*
* @return array The decoded JSON response
*
* @since 3.1.4
*/
public function getSentDirectMessages($since_id = 0, $max_id = 0, $count = 20, $page = 0, $entities = null)
{
// Check the rate limit for remaining hits
$this->checkRateLimit('direct_messages', 'sent');
// Set the API path
$path = '/direct_messages/sent.json';
// Check if since_id is specified.
if ($since_id)
{
$data['since_id'] = $since_id;
}
// Check if max_id is specified.
if ($max_id)
{
$data['max_id'] = $max_id;
}
// Check if count is specified.
if ($count)
{
$data['count'] = $count;
}
// Check if page is specified.
if ($page)
{
$data['page'] = $page;
}
// Check if entities is specified.
if (!is_null($entities))
{
$data['include_entities'] = $entities;
}
// Send the request.
return $this->sendRequest($path, 'GET', $data);
}
/**
* Method to send a new direct message to the specified user from the authenticating user.
*
* @param mixed $user Either an integer containing the user ID or a string containing the screen name.
* @param string $text The text of your direct message. Be sure to keep the message under 140 characters.
*
* @return array The decoded JSON response
*
* @since 3.1.4
* @throws RuntimeException
*/
public function sendDirectMessages($user, $text)
{
// Set the API path
$path = '/direct_messages/new.json';
// Determine which type of data was passed for $user
if (is_numeric($user))
{
$data['user_id'] = $user;
}
elseif (is_string($user))
{
$data['screen_name'] = $user;
}
else
{
// We don't have a valid entry
throw new RuntimeException('The specified username is not in the correct format; must use integer or string');
}
$data['text'] = $text;
// Send the request.
return $this->sendRequest($path, 'POST', $data);
}
/**
* Method to get a single direct message, specified by an id parameter.
*
* @param integer $id The ID of the direct message.
*
* @return array The decoded JSON response
*
* @since 3.1.4
*/
public function getDirectMessagesById($id)
{
// Check the rate limit for remaining hits
$this->checkRateLimit('direct_messages', 'show');
// Set the API path
$path = '/direct_messages/show.json';
$data['id'] = $id;
// Send the request.
return $this->sendRequest($path, 'GET', $data);
}
/**
* Method to delete the direct message specified in the required ID parameter.
*
* @param integer $id The ID of the direct message.
* @param boolean $entities When set to true, each tweet will include a node called "entities,". This node offers a variety of metadata
* about the tweet in a discreet structure, including: user_mentions, urls, and hashtags.
*
* @return array The decoded JSON response
*
* @since 3.1.4
*/
public function deleteDirectMessages($id, $entities = null)
{
// Set the API path
$path = '/direct_messages/destroy.json';
$data['id'] = $id;
// Check if entities is specified.
if (!is_null($entities))
{
$data['include_entities'] = $entities;
}
// Send the request.
return $this->sendRequest($path, 'POST', $data);
}
}