Nous avons vu dans un tutoriel précédent comment récupérer ses derniers Tweets à l'aide de l'API, mais nous n'avons pas vu comment poster un tweet. Cette opération s'avère un peu plus complexe, car nous ne pouvons pas accéder à cette partie de l'API avec une authentification par application. Il faudra nécessairement passer par l'authentification classique.

Création d'une application

Avant de pouvoir commencer à interagir avec l'API de Twitter, il faudra commencer par créer une application. En effet, avec cette nouvelle version il n'est plus possible d'appeler l'API de manière publique. Il faudra nécessairement s'authentifier.

Dans notre cas, nous allons directement utiliser cette application pour récupérer les informations de notre compte. Il est donc inutile de sélectionner un Callback URL. Une fois votre application créée vous obtiendrez 2 informations importantes : une Consumer Key et une Consumer Secret.

Il est aussi possible d'obtenir ici un Access Token et Access Token Secret qui vous permettra d'accéder à l'API authentifié. Ces tokens vous permettront d'interagir avec le compte qui a créé l'application seulement et vous permet de sauter l'étape d'authentification et d'acceptations des permissions.

Authentification

Pour poster des Tweets sur n'importe quel compte il va falloir obtenir un Access Token et Access Token Secret pour le compte que l'on souhaite interroger. On va donc commencer par générer des tokens temporaires qui nous permettront d'obtenir l'URL pour demander l'authentification de l'utilisateur.

$oauth = new Abraham\TwitterOAuth\TwitterOAuth\TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
$response = $oauth->oauth('oauth/request_token', ['oauth_callback' => $callback]);
$_SESSION['oauth_token'] = $response['oauth_token'];
$_SESSION['oauth_token_secret'] = $response['oauth_token_secret'];
echo $oauth->url('oauth/authenticate', ['oauth_token' => $response['oauth_token']]);

Une fois que l'utilisateur aura accepté nos permissions il sera automatiquement regirigé vers notre page $callback avec un token verifier qui nous permettra d'obtenir les tokens d'accès à son compte.

$oauth = new Abraham\TwitterOAuth\TwitterOAuth\TwitterOAuth(
 CONSUMER_KEY,
 CONSUMER_SECRET,
 $_SESSION['oauth_token'],
 $_SESSION['oauth_token_secret']
);
$response = $oauth->oauth('oauth/access_token', ['oauth_verifier' => $verifier]);

Ces tokens peuvent être conservés dans votre base de données et n'expirent pas dans le temps. Ils devront ensuite être utilisés pour communiquer avec l'API pour pouvoir faire les requêtes suivantes.

$oauth = new Abraham\TwitterOAuth\TwitterOAuth\TwitterOAuth(
 CONSUMER_KEY,
 CONSUMER_SECRET,
 $response['oauth_token'],
 $response['oauth_token_secret']
);
$oauth->post(......);