annotate default/assets/vendors/theme-widgets/vendor/abraham/twitteroauth/src/Request.php @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 * The MIT License
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 * Copyright (c) 2007 Andy Smith
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6 namespace Abraham\TwitterOAuth;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8 class Request
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10 protected $parameters;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 protected $httpMethod;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12 protected $httpUrl;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 public static $version = '1.0';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16 * Constructor
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 * @param string $httpMethod
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 * @param string $httpUrl
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20 * @param array|null $parameters
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22 public function __construct($httpMethod, $httpUrl, array $parameters = [])
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 $parameters = array_merge(Util::parseParameters(parse_url($httpUrl, PHP_URL_QUERY)), $parameters);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 $this->parameters = $parameters;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26 $this->httpMethod = $httpMethod;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 $this->httpUrl = $httpUrl;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31 * pretty much a helper function to set up the request
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 * @param Consumer $consumer
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 * @param Token $token
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35 * @param string $httpMethod
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36 * @param string $httpUrl
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 * @param array $parameters
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 * @return Request
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 public static function fromConsumerAndToken(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 Consumer $consumer,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 Token $token = null,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44 $httpMethod,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45 $httpUrl,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46 array $parameters = []
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47 ) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48 $defaults = [
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 "oauth_version" => Request::$version,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 "oauth_nonce" => Request::generateNonce(),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51 "oauth_timestamp" => time(),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52 "oauth_consumer_key" => $consumer->key
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53 ];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54 if (null !== $token) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55 $defaults['oauth_token'] = $token->key;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 $parameters = array_merge($defaults, $parameters);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60 return new Request($httpMethod, $httpUrl, $parameters);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
61 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
62
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
63 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
64 * @param string $name
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
65 * @param string $value
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
66 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
67 public function setParameter($name, $value)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
68 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
69 $this->parameters[$name] = $value;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
70 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
71
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
72 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
73 * @param $name
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
74 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
75 * @return string|null
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
76 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
77 public function getParameter($name)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
78 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
79 return isset($this->parameters[$name]) ? $this->parameters[$name] : null;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
80 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
81
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
82 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
83 * @return array
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
84 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
85 public function getParameters()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
86 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
87 return $this->parameters;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
88 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
89
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
90 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
91 * @param $name
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
92 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
93 public function removeParameter($name)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
94 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
95 unset($this->parameters[$name]);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
96 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
97
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
98 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
99 * The request parameters, sorted and concatenated into a normalized string.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
100 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
101 * @return string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
102 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
103 public function getSignableParameters()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
104 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
105 // Grab all parameters
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
106 $params = $this->parameters;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
107
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
108 // Remove oauth_signature if present
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
109 // Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.")
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
110 if (isset($params['oauth_signature'])) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
111 unset($params['oauth_signature']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
112 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
113
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
114 return Util::buildHttpQuery($params);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
115 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
116
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
117 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
118 * Returns the base string of this request
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
119 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
120 * The base string defined as the method, the url
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
121 * and the parameters (normalized), each urlencoded
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
122 * and the concated with &.
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
123 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
124 * @return string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
125 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
126 public function getSignatureBaseString()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
127 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
128 $parts = [
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
129 $this->getNormalizedHttpMethod(),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
130 $this->getNormalizedHttpUrl(),
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
131 $this->getSignableParameters()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
132 ];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
133
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
134 $parts = Util::urlencodeRfc3986($parts);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
135
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
136 return implode('&', $parts);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
137 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
138
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
139 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
140 * Returns the HTTP Method in uppercase
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
141 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
142 * @return string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
143 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
144 public function getNormalizedHttpMethod()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
145 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
146 return strtoupper($this->httpMethod);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
147 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
148
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
149 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
150 * parses the url and rebuilds it to be
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
151 * scheme://host/path
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
152 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
153 * @return string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
154 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
155 public function getNormalizedHttpUrl()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
156 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
157 $parts = parse_url($this->httpUrl);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
158
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
159 $scheme = $parts['scheme'];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
160 $host = strtolower($parts['host']);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
161 $path = $parts['path'];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
162
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
163 return "$scheme://$host$path";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
164 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
165
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
166 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
167 * Builds a url usable for a GET request
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
168 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
169 * @return string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
170 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
171 public function toUrl()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
172 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
173 $postData = $this->toPostdata();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
174 $out = $this->getNormalizedHttpUrl();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
175 if ($postData) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
176 $out .= '?' . $postData;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
177 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
178 return $out;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
179 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
180
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
181 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
182 * Builds the data one would send in a POST request
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
183 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
184 * @return string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
185 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
186 public function toPostdata()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
187 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
188 return Util::buildHttpQuery($this->parameters);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
189 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
190
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
191 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
192 * Builds the Authorization: header
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
193 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
194 * @return string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
195 * @throws TwitterOAuthException
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
196 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
197 public function toHeader()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
198 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
199 $first = true;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
200 $out = 'Authorization: OAuth';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
201 foreach ($this->parameters as $k => $v) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
202 if (substr($k, 0, 5) != "oauth") {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
203 continue;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
204 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
205 if (is_array($v)) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
206 throw new TwitterOAuthException('Arrays not supported in headers');
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
207 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
208 $out .= ($first) ? ' ' : ', ';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
209 $out .= Util::urlencodeRfc3986($k) . '="' . Util::urlencodeRfc3986($v) . '"';
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
210 $first = false;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
211 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
212 return $out;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
213 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
214
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
215 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
216 * @return string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
217 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
218 public function __toString()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
219 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
220 return $this->toUrl();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
221 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
222
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
223 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
224 * @param SignatureMethod $signatureMethod
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
225 * @param Consumer $consumer
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
226 * @param Token $token
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
227 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
228 public function signRequest(SignatureMethod $signatureMethod, Consumer $consumer, Token $token = null)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
229 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
230 $this->setParameter("oauth_signature_method", $signatureMethod->getName());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
231 $signature = $this->buildSignature($signatureMethod, $consumer, $token);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
232 $this->setParameter("oauth_signature", $signature);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
233 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
234
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
235 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
236 * @param SignatureMethod $signatureMethod
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
237 * @param Consumer $consumer
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
238 * @param Token $token
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
239 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
240 * @return string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
241 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
242 public function buildSignature(SignatureMethod $signatureMethod, Consumer $consumer, Token $token = null)
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
243 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
244 return $signatureMethod->buildSignature($this, $consumer, $token);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
245 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
246
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
247 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
248 * @return string
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
249 */
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
250 public static function generateNonce()
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
251 {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
252 return md5(microtime() . mt_rand());
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
253 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
254 }