Partage

original_referer = URL du site web
url = URL
text = titre
tw_p = tweetbutton
https://twitter.com/intent/tweet?original_referer=URLICI&text=titre&tw_p=tweetbutton&url=URL

Migration 1.0 vers 1.1 (authentification OAuth)

Voici les étapes pour migrer l'appel de user_timeline 1.0 vers 1.1.

Anciennement, on pouvait utilisé l'api en HTTP sans authentification. Maintenant il faut des clés publiques/privées, faire un POST et envoyer une authentification en HTTPS (ssl).

Ancien URL: http://api.twitter.com/1/statuses/user_timeline.json?screen_name=SCREEN_NAME&count=1&trim_user=true&include_rts=1

Nouveau: https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=SCREEN_NAME&count=1&trim_user=true&include_rts=1

Pour obtenir les clés publiques et le secret (consumer key and consumer secret), il faut:

Pour obtenir la liste des derniers tweets de notre usager, il nous faut seulement une authentification d'application avec consumer key et un consumer secret.

1. Encoder en base64 les deux jetons séparés par un deux-points.   base64_encode('jeton1:jeton2') et le stocker dans une variable ($b64btc)
2. Faire une requête POST vers /oauth2/token (api.twitter.com) en HTTPS avec les entêtes suivantes:
Authorization: Basic $b64btc
Content-Type: application/x-www-form-urlencoded;charset=UTF-8

Et le corps du document suivant:
grant_type=client_credentials

3. Enregistrer la réponse HTTP, décoder le JSON et prendre le jeton d'accès ($obj->access_token). Le type de jeton (token_type) doit être "bearer".
{"token_type":"bearer","access_token":"JETONDACCESICI"}

4. Faire une requête GET vers 11/statuses/user_timeline.json?screen_name=SCREEN_NAME&count=1&trim_user=true&include_rts=1 et envoyé l'entête suivante:
Authorization: Bearer JETONDACCESSICI

TwitterOAuth_Helper

J'ai fait une classe pour faire ces requêtes dans GenList2, voir TwitterOAuth_Helper ou TwitterOAuth.txt

$tw = new TwitterOAuth_Helper();
$basicauth = $tw->get_basicauth_consumer($consumer_key, $consumer_secret);
$twitter->set_basicauth($basicauth);
$firstpost = $tw->get_timeline('user');

Hyperliens...