· 5 years ago · Mar 06, 2020, 07:30 PM
1<?php
2// oauth token rGSdvgAAAAAA5SFlAAABYnx7mSI
3$postData = [
4 'status' => 'Automatisierter Testtweet'
5];
6
7$oauthHeader = [
8 'status' => 'Automatisierter Testtweet',
9 'oauth_callback' => 'https://dev.hsrv.me/twitter/callback.php',
10 'oauth_consumer_key' => '1o7Ga6N3KeAzmnEU06OhvqpCT', // Consumer Key (API Key)
11 'oauth_token' => '1030354991641505797-3wXzJtdkVsqjtUXBHzqSNylclkEIgO', // oauth_token
12 'oauth_nonce' => 'K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAf5BslRsqyw',
13 'oauth_signature_method' => 'HMAC-SHA1',
14 'oauth_timestamp' => strtotime("now"),
15 'oauth_version' => '1.0',
16 ];
17$signature = create_signature('https://api.twitter.com/1.1/statuses/update.json', $oauthHeader, 'a2lZknCbUxhp5E2fyvscWKZgoqZ39c3cJANRr1GztJ6zk'); // oauth_token_secret
18$oauthHeader['oauth_signature'] = $signature;
19
20$ch = curl_init();
21curl_setopt($ch, CURLOPT_URL,"https://api.twitter.com/1.1/statuses/update.json");
22curl_setopt($ch, CURLOPT_POST, 1);
23curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
24curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
25curl_setopt($ch, CURLOPT_HTTPHEADER, array(
26 'Authorization: OAuth '.buildOAuthHeader($oauthHeader)
27));
28
29$server_output = curl_exec ($ch);
30
31curl_close ($ch);
32
33print_r($server_output);
34
35function buildOAuthHeader(array $parameters) {
36 $header = '';
37 foreach ($parameters as $key => $val) {
38 if ($header !== '') $header .= ', ';
39 $header .= rawurlencode($key).'="'.rawurlencode($val).'"';
40 }
41
42 return $header;
43}
44
45function create_signature($url, array $parameters, $tokenSecret = '', $method = 'POST') {
46 $tmp = [];
47 foreach ($parameters as $key => $val) {
48 $tmp[rawurlencode($key)] = rawurlencode($val);
49 }
50 $parameters = $tmp;
51
52 uksort($parameters, 'strcmp');
53 $parameterString = '';
54 foreach ($parameters as $key => $val) {
55 if ($parameterString !== '') $parameterString .= '&';
56 $parameterString .= $key.'='.$val;
57 }
58
59 $base = strtoupper($method).'&'.rawurlencode($url).'&'.rawurlencode($parameterString);
60 $key = rawurlencode('351LJGw60RUeHNBTfkrQvswMZKDcJr6KD223XveAyFcrz8PGXL').'&'.rawurlencode($tokenSecret); // Consumer Secret (API Secret)
61
62 return base64_encode(hash_hmac('sha1', $base, $key, true));
63}