oauth.php
3.36 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
<?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();
use Joomla\Registry\Registry;
/**
* Joomla Platform class for generating Twitter API access token.
*
* @since 3.1.4
* @deprecated 4.0 Use the `joomla/twitter` package via Composer instead
*/
class JTwitterOAuth extends JOAuth1Client
{
/**
* @var Registry Options for the JTwitterOauth object.
* @since 3.1.4
*/
protected $options;
/**
* Constructor.
*
* @param Registry $options JTwitterOauth options object.
* @param JHttp $client The HTTP client object.
* @param JInput $input The input object.
* @param JApplicationWeb $application The application object.
*
* @since 3.1.4
*/
public function __construct(Registry $options = null, JHttp $client = null, JInput $input = null, JApplicationWeb $application = null)
{
$this->options = isset($options) ? $options : new Registry;
$this->options->def('accessTokenURL', 'https://api.twitter.com/oauth/access_token');
$this->options->def('authenticateURL', 'https://api.twitter.com/oauth/authenticate');
$this->options->def('authoriseURL', 'https://api.twitter.com/oauth/authorize');
$this->options->def('requestTokenURL', 'https://api.twitter.com/oauth/request_token');
// Call the JOAuth1Client constructor to setup the object.
parent::__construct($this->options, $client, $input, $application);
}
/**
* Method to verify if the access token is valid by making a request.
*
* @return boolean Returns true if the access token is valid and false otherwise.
*
* @since 3.1.4
*/
public function verifyCredentials()
{
$token = $this->getToken();
// Set the parameters.
$parameters = array('oauth_token' => $token['key']);
// Set the API base
$path = 'https://api.twitter.com/1.1/account/verify_credentials.json';
// Send the request.
$response = $this->oauthRequest($path, 'GET', $parameters);
// Verify response
if ($response->code == 200)
{
return true;
}
else
{
return false;
}
}
/**
* Ends the session of the authenticating user, returning a null cookie.
*
* @return array The decoded JSON response
*
* @since 3.1.4
*/
public function endSession()
{
$token = $this->getToken();
// Set parameters.
$parameters = array('oauth_token' => $token['key']);
// Set the API base
$path = 'https://api.twitter.com/1.1/account/end_session.json';
// Send the request.
$response = $this->oauthRequest($path, 'POST', $parameters);
return json_decode($response->body);
}
/**
* Method to validate a response.
*
* @param string $url The request URL.
* @param JHttpResponse $response The response to validate.
*
* @return void
*
* @since 3.1.4
* @throws DomainException
*/
public function validateResponse($url, $response)
{
if (strpos($url, 'verify_credentials') === false && $response->code != 200)
{
$error = json_decode($response->body);
if (property_exists($error, 'error'))
{
throw new DomainException($error->error);
}
else
{
$error = $error->errors;
throw new DomainException($error[0]->message, $error[0]->code);
}
}
}
}