Twitter API : « Sorry, that page does not exist. »

Le 16 aout 2018, l’équipe de développement de Twitter annonçait que plusieurs fonctionnalités de l’API passaient en dépréciée. Voici la liste exhaustive des fonctionnalités annoncées comme obsolètes :

  • User Streams
  • Site Streams
  • GET direct_messages
  • GET direct_messages/sent
  • GET direct_messages/show
  • POST direct_messages/new
  • POST direct_messages/destroy
  • Account Activity API DM Beta

Si vous avez continué à exploiter ces fonctionnalités, il y a de forte chance que vous rencontriez aujourd’hui des erreurs. Par exemple, voici ce que renvoi la fonction d’envoi de message privé si vous n’avez pas fait la migration :

{
   "errors":[
      {
         "code":34,
         "message":"Sorry, that page does not exist."
      }
   ]
}

POST direct_messages/new (déprécié)

Dans le projet PingBreak, j’utilise la méthode direct_messages/new pour prévenir les utilisateurs en leur envoyant un DM sur Twitter lorsque leurs sites sont injoignables. Malheureusement, cette fonctionnalité est aujourd’hui indisponible, voyons comment migrer vers la nouvelle méthode direct_messages/events/new

Les exemples suivants utilisent la bibliothèque Abraham\TwitterOAuth

// Configuration du service Twitter 
$twitterService = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secret);

// Méthode dépréciée
$twitterService->post("direct_messages/new", [
    'screen_name' => 'arnolem',
    'text' => 'HelloWorld'
]);

Comme nous l’avons vu, cette méthode génère maintenant une erreur « Sorry, that page does not exist. »

POST direct_messages/events/new

Voici maintenant comment utiliser la nouvelle méthode pour envoyer un message privé :

// Configuration du service Twitter 
$twitterService = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secret);

// Méthode dépréciée
$twitterService->post("direct_messages/events/new", [
    'event' => [
        'type' => 'message_create',
        'message_create' => [
            'target' => [
                'recipient_id' => 269028918 //arnolem
            ],
            'message_data' => [
                'text' => 'HelloWorld'
            ]
        ]
    ]
], true); // Ne pas oublier le True pour activer le JSON           

Ressources récentes