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:
400 Error: Requests with bodies must have content-type of application/json
<?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);
}
?>
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:
$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?