Twitter API class wil niet meewerken
Ik gebruik de TwitterOautTwitterOauth class van Abraham die ik via Composer inlaad. Ook gebruik ik de V2 van de Twitter API omdat de V1 API niet meer werkt.
Echter met onderstaande code krijg ik dit:
Quote:
400 Error: Requests with bodies must have content-type of application/json
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
require "vendor/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
define('CONSUMER_KEY', '******');
define('CONSUMER_SECRET', '*****************');
$access_token = "************************";
$access_token_secret = "************************";
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secret);
$connection->setApiVersion('2');
$connected = $connection->get("account/verify_credentials");
$status = $connection->post("tweets", ["status" => "Kijken of het geautomatiseerd werkt."]);
if ($connection->getLastHttpCode() == 200) {
echo "Gaat goed. Code 200 = OK!";
} else {
$code = $connection->getLastHttpCode();
echo "HTTP-code is: " . $code;
echo 'Error: ' . $status->errors[0]->message;
print_r($status);
}
?>
require "vendor/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
define('CONSUMER_KEY', '******');
define('CONSUMER_SECRET', '*****************');
$access_token = "************************";
$access_token_secret = "************************";
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secret);
$connection->setApiVersion('2');
$connected = $connection->get("account/verify_credentials");
$status = $connection->post("tweets", ["status" => "Kijken of het geautomatiseerd werkt."]);
if ($connection->getLastHttpCode() == 200) {
echo "Gaat goed. Code 200 = OK!";
} else {
$code = $connection->getLastHttpCode();
echo "HTTP-code is: " . $code;
echo 'Error: ' . $status->errors[0]->message;
print_r($status);
}
?>
Ik heb ook al geprobeerd om de array door json_decode() te halen, en die aan de $connection->post() te voeren, maar dat werkt ook niet. De class zegt dat hij toch echt een array verwacht?
Iemand een idee wat er mis gaat?
Update na tiental minuten:
Whoehoe! Baby steps are made!
Na hels geklooi verder zijn we een stap verder:
Code (php)
1
$status = $connection->post("tweets", ["status" => "Kijken of het geautomatiseerd werkt."],true);
Die true-parameter is de oplossing.
Maar nu heb ik geklooi met die API-key's die niet geaccepteerd worden.
Ik kwam dit tegen op internet:
API KEY -> OAUTH_CONSUMER_KEY
API_SECRET —> CONSUMER_SECRET
ACCESS_TOKEN -> OAUTH_TOKEN
ACCESS_SECRET —> OAUTH_SECRET_KEY
Dit zijn toch de key's die bedoeld worden in combinatie met het script?
Echt, what a hell! Kon Elon niet lekker bij zijn autootjes en raketjes blijven?
Gewijzigd op 07/08/2023 21:40:44 door - Ariën -
Inmiddels heb ik het dus opgelost met een true parameter.
Code (php)
1
$status = $connection->post("tweets", ["status" => "Kijken of het geautomatiseerd werkt."],true);
Maar moet ik nog even kijken naar die key's. Ik krijg steeds Unauthorised 403. Ome Elon wil me niet in zijn errortjes vertellen wat er fout is, dus het wordt een leuke puzzel door die inconsistente benamingen.
Maar de implementatie klopt inmiddels wel.
$connection = new X_OAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secret);
$connection->setApiVersion('I_LIKE_ELON');
$connected = $connection->get("verify_account/elon_rules");
- Ariën - op 07/08/2023 20:32:21:
Hoi luitjes. Ik weet dat Twitter een aflopende zaak is, maar [...]
Het is nu wel heel snel aan het aflopen. Zie deze vid op JijBuis:
https://www.youtube.com/watch?v=U_M_uvDChJQ
Omdat Musk zich aansluit bij antisemitische uitspraken keren grote adverteerders zoals Walt Disney, IBM en Apple zich af van X. Ook onze overheid en verschillende grote Nederlandse bedrijven stoppen de samenwerking met X, aldus de website wel.nl :
https://www.welingelichtekringen.nl/video/4354893/elon-musk-vreest-ondergang-x-en-scheldt-boycottende-adverteerders-uit-go-fck-yourself.html
Ik begin met X de associatie te krijgen dat het symbool 45 graden gedraaid moet en nog wat extra streepjes aan de uiteinden erbij.. wie wil hier nou graag mee geassocieerd worden?!
Over dit topic:
Ik heb die API van X/Twitter nooit meer goed aan de praat gekregen. Ik heb API-tokens gekregen, maar constant worden ze geweigerd. Inmiddels heb ik maar een IFTTT implementatie geregeld, waarbij je met een betaald abonnement RSS-feeds door kan sturen naar Twitter/X. Op diezelfde wijze heb ik dat ook met Mastodon gedaan, maar dan via een Webhook en een cURL-script in PHP omdat IFTTT geen Mastodon ondersteunt. Ook ben ik aan het ontdekken of dit met BlueSky kan, en dat werkt. Echter moet ik nog kijken hoe ik een 'card' aanmaak om een link in te kunnen plaatsen. Je moet flinke lappen JSON indienen om dit te kunnen doen, en voorzover ik zie nog wat handwerk doen met base64encoding van de afbeelding ofzo.