API Twitter pour Laravel 10.x, 11.x (et nouvelles versions au fur et à mesure de leur sortie). Prend également en charge d'autres frameworks via PHP-DI (ou n'hésitez pas à ajouter le support de votre framework via PR)
Vous devez créer une application et créer votre jeton d'accès dans la gestion des applications.
composer require atymic/twitter:^3.0 -W
Définissez simplement les variables d'environnement ci-dessous dans votre .env
.
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_TOKEN_SECRET=
TWITTER_API_VERSION=
Exécutez php artisan vendor:publish --provider="AtymicTwitterServiceProviderLaravelServiceProvider"
/config/twitter.php
3.x est la version majeure actuelle et n'est pas rétrocompatible avec 2.x.
Consultez le guide de migration dans UPGRADE.md.
2.x n'est plus maintenu. Nous n'acceptons pas les corrections de bugs, veuillez passer à la version 3.x
Vous pouvez choisir entre trois formats de sortie différents. Par défaut, les réponses API v1 seront renvoyées sous forme d'objets tandis que les réponses API v2 seront renvoyées sous forme JSON. Pour changer cela, utilisez l'option response_format
dans les paramètres que vous transmettez à n'importe quelle méthode.
response_format : object|json|array (v1 default:object) (v2 default:json)
Pour définir la version par défaut de l'API Twitter sur v2 au lieu de la version par défaut v1.1
, définissez TWITTER_API_VERSION
sur 2
dans votre .env
.
Si vous avez défini l'API v1.1
par défaut, vous pouvez utiliser Twitter::forApiV2()
pour obtenir une instance du client v2. Il en va de même pour obtenir une instance v1
à partir d'un client v2
, en utilisant Twitter::forApiV1()
.
Il est possible d'appeler Twitter::forApiV1()
en toute sécurité sur une instance client v1
ou v2
.
getSettings()
- Renvoie les paramètres (y compris les informations sur la tendance actuelle, la géolocalisation et le temps de sommeil) pour l'utilisateur qui s'authentifie.getCredentials()
postSettings()
- Met à jour les paramètres de l'utilisateur authentifiant.postSettingsDevice()
- Définit l'appareil sur lequel Twitter fournit les mises à jour pour l'utilisateur qui s'authentifie. L’envoi d’aucun comme paramètre de périphérique désactivera les mises à jour SMS.postProfile()
- Définit certaines valeurs que les utilisateurs peuvent définir sous l'onglet « Compte » de leur page de paramètres. Seuls les paramètres spécifiés seront mis à jour.postBackground()
- Met à jour l'image d'arrière-plan du profil de l'utilisateur authentifiant. Cette méthode peut également être utilisée pour activer ou désactiver l’image d’arrière-plan du profil.postProfileImage()
- Met à jour l'image de profil de l'utilisateur authentifiant. Notez que cette méthode attend des données brutes en plusieurs parties, et non une URL vers une image.destroyUserBanner()
- Supprime la bannière de profil téléchargée pour l'utilisateur authentifié. Renvoie HTTP 200 en cas de succès.postUserBanner()
- Télécharge une bannière de profil au nom de l'utilisateur authentifié. Pour de meilleurs résultats, téléchargez un nœud profile_banner_url dans leurs objets Users. setWebhook($env, $url)
- Enregistre une URL de webhook pour tous les types d'événements dans l'environnement donné.crcHash($crcToken)
- Renvoie le hachage HMAC SHA-256 à partir du jeton CRC et du secret consommateur donnés. Vous devrez le renvoyer sur votre webhook (plus d'infos).getWebhooks($env)
- Renvoie les URL des webhooks pour l'environnement donné (ou tous les environnements si aucun n'est fourni) et leurs statuts pour l'application d'authentification.updateWebhooks($env, $webhookId)
- Déclenche la vérification de réponse au défi (CRC) pour le webhook des environnements donnés pour toutes les activités. Si la vérification réussit, renvoie true et réactive le webhook en définissant son statut sur valide.destroyWebhook($env, $webhookId)
- Supprime le webhook de la configuration de toutes les activités de l'application fournie. Renvoie vrai en cas de succès.setSubscriptions($env)
- Abonne l'application fournie à tous les événements de l'environnement fourni pour tous les types de messages. Renvoie vrai en cas de succès.getSubscriptions($env)
- Renvoie vrai si le contexte utilisateur fourni a un abonnement actif avec l'application fournie.getSubscriptionsCount()
- Renvoie le nombre d'abonnements actuellement actifs sur votre compte pour toutes les activités.getSubscriptionsList($env)
- Renvoie une liste des abonnements actuels de type Toutes les activités.destroyUserSubscriptions($env, $userId)
- Désactive l'abonnement pour l'ID utilisateur spécifié de l'environnement. Renvoie vrai en cas de succès. getBlocks()
- Renvoie une collection d'objets utilisateur que l'utilisateur authentifiant bloque.getBlocksIds()
- Renvoie un tableau d'identifiants d'utilisateur numériques que l'utilisateur authentifiant bloque.postBlock()
- Empêche l'utilisateur spécifié de suivre l'utilisateur authentifiant. De plus, l'utilisateur bloqué n'apparaîtra pas dans les mentions ou la chronologie des utilisateurs authentifiants (à moins qu'il ne soit retweeté par un autre utilisateur). Si une relation de suivi ou d’amitié existe, elle est détruite.destroyBlock()
- Débloque l'utilisateur spécifié dans le paramètre ID pour l'utilisateur authentifiant. Renvoie l'utilisateur non bloqué dans le format demandé en cas de succès. Si des relations existaient avant l’instauration du blocage, elles ne seront pas restaurées. getDm()
- Renvoie un seul événement de message direct, spécifié par un paramètre id.getDms()
- Renvoie tous les événements de messages directs (envoyés et reçus) au cours des 30 derniers jours. Triés par ordre chronologique inverse.destroyDm()
- Détruit le message direct spécifié dans le paramètre ID requis. L'utilisateur authentifiant doit être le destinataire du message direct spécifié.postDm()
- Publie un nouvel événement message_create résultant en un message direct envoyé à un utilisateur spécifié par l'utilisateur authentifiant. Renvoie un événement en cas de succès. Prend en charge la publication de messages directs avec réponse rapide et pièce jointe multimédia en option. getFavorites()
- Renvoie les 20 Tweets les plus récents mis en favoris par l'utilisateur authentifié ou spécifié.destroyFavorite()
- Supprime le statut spécifié dans le paramètre ID en tant qu'utilisateur authentifiant. Renvoie le statut non favori dans le format demandé en cas de succès.postFavorite()
- Met en favoris le statut spécifié dans le paramètre ID en tant qu'utilisateur authentifiant. Renvoie le statut de favori en cas de succès. getNoRters()
- Renvoie une collection d'identifiants d'utilisateur dont l'utilisateur actuellement authentifié ne souhaite pas recevoir de retweets.getFriendsIds()
- Renvoie une collection par curseur d'ID utilisateur pour chaque utilisateur suivant l'utilisateur spécifié.getFollowersIds()
- Renvoie une collection par curseur d'ID utilisateur pour chaque utilisateur suivant l'utilisateur spécifié.getFriendshipsIn()
- Renvoie une collection d'identifiants numériques pour chaque utilisateur qui a une demande en attente pour suivre l'utilisateur authentifié.getFriendshipsOut()
- Renvoie une collection d'identifiants numériques pour chaque utilisateur protégé pour lequel l'utilisateur authentifiant a une demande de suivi en attente.postFollow()
- Permet aux utilisateurs authentifiés de suivre l'utilisateur spécifié dans le paramètre ID.postUnfollow()
- Permet à l'utilisateur authentifié de ne plus suivre l'utilisateur spécifié dans le paramètre ID.postFollowUpdate()
- Permet d'activer ou de désactiver les retweets et les notifications de périphérique de l'utilisateur spécifié.getFriendships()
- Renvoie des informations détaillées sur la relation entre deux utilisateurs arbitraires.getFriends()
- Renvoie une collection d'objets utilisateur par curseur pour chaque utilisateur suivi par l'utilisateur spécifié (également connu sous le nom de « amis »).getFollowers()
- Renvoie une collection d'objets utilisateur par curseur pour les utilisateurs suivant l'utilisateur spécifié.getFriendshipsLookup()
- Renvoie les relations de l'utilisateur authentifiant avec la liste séparée par des virgules pouvant contenir jusqu'à 100 noms d'écran ou identifiants d'utilisateur fournis. Les valeurs des connexions peuvent être : follow, follow_requested, follow_by, none, blocking, muting. getGeo()
- Renvoie toutes les informations sur un lieu connu.getGeoReverse()
- Étant donné une latitude et une longitude, recherche jusqu'à 20 lieux pouvant être utilisés comme place_id lors de la mise à jour d'un statut.getGeoSearch()
- Recherchez des lieux pouvant être attachés à un statut/une mise à jour. Étant donné une paire de latitude et de longitude, une adresse IP ou un nom, cette requête renverra une liste de tous les lieux valides pouvant être utilisés comme place_id lors de la mise à jour d'un statut.getGeoSimilar()
- Localise les lieux proches des coordonnées données et dont le nom est similaire. Conceptuellement, vous utiliseriez cette méthode pour obtenir une liste de lieux connus parmi lesquels choisir en premier. Ensuite, si le lieu souhaité n'existe pas, faites une demande à POST geo/place pour en créer un nouveau. Le jeton contenu dans la réponse est le jeton nécessaire pour pouvoir créer un nouveau lieu. postSpam()
- Signale l'utilisateur spécifié comme compte de spam à Twitter. Effectue en outre l'équivalent de blocs POST/création au nom de l'utilisateur authentifié.getHelpConfiguration()
- Renvoie la configuration actuelle utilisée par Twitter, y compris les slugs twitter.com qui ne sont pas des noms d'utilisateur, les résolutions photo maximales et les longueurs d'URL t.co.getHelpLanguages()
- Renvoie la liste des langues prises en charge par Twitter ainsi que le code de langue pris en charge par Twitter.getHelpPrivacy()
– Renvoie la politique de confidentialité de Twitter.getHelpTos()
- Renvoie les conditions d'utilisation de Twitter. Remarque : ce ne sont pas les mêmes que la politique du développeur.getAppRateLimit()
- Renvoie les limites de débit actuelles pour les méthodes appartenant aux familles de ressources spécifiées. getLists()
- Renvoie toutes les listes auxquelles l'utilisateur authentifiant ou spécifié est abonné, y compris la leur. L'utilisateur est spécifié à l'aide des paramètres user_id ou screen_name. Si aucun utilisateur n'est indiqué, l'utilisateur authentifiant est utilisé.getListStatuses()
- Renvoie une chronologie des tweets rédigés par les membres de la liste spécifiée. Les retweets sont inclus par défaut. Utilisez le paramètre include_rts=false pour omettre les retweets.destroyListMember()
- Supprime le membre spécifié de la liste. L'utilisateur authentifié doit être le propriétaire de la liste pour supprimer des membres de la liste.getListsMemberships()
- Renvoie les listes auxquelles l'utilisateur spécifié a été ajouté. Si user_id ou screen_name ne sont pas fournis, les adhésions de l'utilisateur authentifiant sont renvoyées.getListsSubscribers()
- Renvoie les abonnés de la liste spécifiée. Les abonnés à la liste privée ne seront affichés que si l'utilisateur authentifié possède la liste spécifiée.postListSubscriber()
- Abonne l'utilisateur authentifié à la liste spécifiée.getListSubscriber()
- Renvoie les abonnés de la liste spécifiée. Les abonnés à la liste privée ne seront affichés que si l'utilisateur authentifié possède la liste spécifiée.destroyListSubscriber()
- Désabonne l'utilisateur authentifié de la liste spécifiée.postListCreateAll()
- Ajoute plusieurs membres à une liste, en spécifiant une liste d'identifiants de membre ou de noms d'écran séparés par des virgules. L'utilisateur authentifié doit être propriétaire de la liste pour pouvoir y ajouter des membres. Notez que les listes ne peuvent pas contenir plus de 5 000 membres et que vous êtes limité à ajouter jusqu’à 100 membres à une liste à la fois avec cette méthode.getListMember()
- Vérifiez si l'utilisateur spécifié est membre de la liste spécifiée.getListMembers()
- Renvoie les membres de la liste spécifiée. Les membres de la liste privée ne seront affichés que si l'utilisateur authentifié possède la liste spécifiée.postListMember()
- Ajoute un membre à une liste. L'utilisateur authentifié doit être propriétaire de la liste pour pouvoir y ajouter des membres. Notez que les listes ne peuvent pas compter plus de 5 000 membres.destroyList()
- Supprime la liste spécifiée. L'utilisateur authentifié doit être propriétaire de la liste pour pouvoir la détruire.postListUpdate()
- Met à jour la liste spécifiée. L'utilisateur authentifié doit être propriétaire de la liste pour pouvoir la mettre à jour.postList()
- Crée une nouvelle liste pour l'utilisateur authentifié. Notez que vous ne pouvez pas créer plus de 20 listes par compte.getList()
- Renvoie la liste spécifiée. Les listes privées ne seront affichées que si l'utilisateur authentifié possède la liste spécifiée.getListSubscriptions()
- Obtenez une collection de listes auxquelles l'utilisateur spécifié est abonné, 20 listes par page par défaut. N'inclut pas les propres listes de l'utilisateur.destroyListMembers()
- Supprime plusieurs membres d'une liste, en spécifiant une liste d'identifiants de membre ou de noms d'écran séparés par des virgules. L'utilisateur authentifié doit être propriétaire de la liste pour pouvoir en supprimer des membres. Notez que les listes ne peuvent pas contenir plus de 500 membres et que vous êtes limité à supprimer jusqu'à 100 membres d'une liste à la fois avec cette méthode.getListOwnerships()
- Renvoie les listes appartenant à l'utilisateur Twitter spécifié. Les listes privées ne seront affichées que si l'utilisateur authentifié est également le propriétaire des listes. uploadMedia()
- Téléchargez des médias (images) sur Twitter, à utiliser dans un Tweet ou une carte hébergée par Twitter. getSearch()
- Renvoie une collection de Tweets pertinents correspondant à une requête spécifiée.getSavedSearches()
- Renvoie les requêtes de recherche enregistrées de l'utilisateur authentifié.getSavedSearch()
- Récupère les informations de la recherche enregistrée représentée par l'identifiant donné. L'utilisateur authentifiant doit être le propriétaire de l'ID de recherche enregistré demandé.postSavedSearch()
- Crée une nouvelle recherche enregistrée pour l'utilisateur authentifié. Un utilisateur ne peut avoir que 25 recherches enregistrées.destroySavedSearch()
- Détruit une recherche enregistrée pour l'utilisateur authentifié. L'utilisateur authentifiant doit être le propriétaire de l'identifiant de recherche enregistré en cours de destruction. getMentionsTimeline()
- Renvoie les 20 mentions les plus récentes (tweets contenant le @screen_name d'un utilisateur) pour l'utilisateur qui s'authentifie.getUserTimeline()
- Renvoie une collection des Tweets les plus récents publiés par l'utilisateur indiqué par les paramètres screen_name ou user_id.getHomeTimeline()
- Renvoie une collection des Tweets et retweets les plus récents publiés par l'utilisateur authentifié et les utilisateurs qu'il suit. La chronologie de la maison est au cœur de la façon dont la plupart des utilisateurs interagissent avec le service Twitter. *getRtsTimeline()
- Renvoie les tweets les plus récents rédigés par l'utilisateur authentifiant et qui ont été retweetés par d'autres.getRts()
- Renvoie une collection des 100 retweets les plus récents du tweet spécifié par le paramètre id.getTweet()
- Renvoie un seul Tweet, spécifié par le paramètre id. L'auteur du Tweet sera également intégré au tweet.destroyTweet()
- Détruit le statut spécifié par le paramètre ID requis. L'utilisateur authentifiant doit être l'auteur du statut spécifié. Renvoie le statut détruit en cas de succès.postTweet()
- Met à jour le statut actuel de l'utilisateur authentifié, également appelé tweet.postRt()
- Retweet un tweet. Renvoie le tweet original avec les détails du retweet intégrés.getOembed()
- Renvoie un seul Tweet, spécifié soit par une URL Web du Tweet, soit par l'ID du Tweet, dans un format compatible avec oEmbed. L'extrait HTML renvoyé sera automatiquement reconnu comme un Tweet intégré lorsque le widget JavaScript de Twitter sera inclus sur la page.getRters()
- Renvoie une collection allant jusqu'à 100 identifiants utilisateur appartenant aux utilisateurs qui ont retweeté le tweet spécifié par le paramètre id.getStatusesLookup()
- Renvoie des objets tweet entièrement hydratés pour un maximum de 100 tweets par requête, comme spécifié par les valeurs séparées par des virgules transmises au paramètre id. getTrendsPlace()
- Renvoie les 10 principaux sujets de tendance pour un WOEID spécifique, si des informations sur les tendances sont disponibles pour celui-ci.getTrendsAvailable()
- Renvoie les emplacements pour lesquels Twitter dispose d'informations sur les sujets de tendance.getTrendsClosest()
- Renvoie les emplacements pour lesquels Twitter dispose d'informations sur les sujets de tendance, les plus proches d'un emplacement spécifié. getUsersLookup()
- Renvoie des objets utilisateur entièrement hydratés pour un maximum de 100 utilisateurs par requête, comme spécifié par des valeurs séparées par des virgules transmises aux paramètres user_id et/ou screen_name.getUsers()
- Renvoie diverses informations sur l'utilisateur spécifié par le paramètre user_id ou screen_name requis. Le Tweet le plus récent de l'auteur sera renvoyé en ligne lorsque cela sera possible.getUsersSearch()
- Fournit une interface de recherche simple et basée sur la pertinence aux comptes d'utilisateurs publics sur Twitter. Essayez d'effectuer une requête par intérêt thématique, nom complet, nom de l'entreprise, emplacement ou d'autres critères. Les recherches de correspondance exacte ne sont pas prises en charge.getUserBanner()
- Renvoie une carte des variations de taille disponibles de la bannière de profil de l'utilisateur spécifié. Si l'utilisateur n'a pas téléchargé de bannière de profil, un HTTP 404 sera servi à la place. Cette méthode peut être utilisée à la place de la manipulation de chaîne sur le profile_banner_url renvoyé dans les objets utilisateur comme décrit dans Images de profil et bannières.muteUser()
- Met en sourdine l'utilisateur spécifié dans le paramètre ID pour l'utilisateur authentifiant.unmuteUser()
- Réactive le son de l'utilisateur spécifié dans le paramètre ID pour l'utilisateur authentifiant.mutedUserIds()
- Renvoie un tableau d'identifiants d'utilisateur numériques que l'utilisateur authentifiant a désactivés.mutedUsers()
- Renvoie un tableau d'objets utilisateur que l'utilisateur authentifiant a désactivés.getSuggesteds()
- Accédez aux utilisateurs d'une catégorie donnée de la liste d'utilisateurs suggérés par Twitter.getSuggestions()
- Accès à la liste d'utilisateurs suggérés par Twitter. Cela renvoie la liste des catégories d'utilisateurs suggérées. La catégorie peut être utilisée dans GET users / suggestions / :slug pour obtenir les utilisateurs de cette catégorie.getSuggestedsMembers()
- Accédez aux utilisateurs d'une catégorie donnée de la liste des utilisateurs suggérés par Twitter et renvoyez leur statut le plus récent s'ils ne sont pas un utilisateur protégé.getTweet()
- Renvoie diverses informations sur un seul Tweet spécifié par l'ID demandé.getTweets()
- Renvoie diverses informations sur le Tweet spécifié par l'ID demandé ou la liste d'ID. searchRecent()
- Le point de terminaison de recherche récente renvoie les Tweets des sept derniers jours qui correspondent à une requête de recherche.
searchAll()
- Le point de terminaison de recherche d'archive complète renvoie l'historique complet des Tweets publics correspondant à une requête de recherche ; depuis la création du premier Tweet le 26 mars 2006.
Remarque : Ce point de terminaison n'est disponible que pour les personnes approuvées pour le volet de produits Recherche universitaire.
userTweets()
- Renvoie les Tweets composés par un seul utilisateur, spécifié par l'ID utilisateur demandé. Par défaut, les dix Tweets les plus récents sont renvoyés par requête. Grâce à la pagination, les 3 200 Tweets les plus récents peuvent être récupérés.userMentions()
- Renvoie les Tweets mentionnant un seul utilisateur spécifié par l'ID utilisateur demandé. Par défaut, les dix Tweets les plus récents sont renvoyés par requête. Grâce à la pagination, jusqu'aux 800 Tweets les plus récents peuvent être récupérés. getStreamRules()
- Renvoie une liste de règles actuellement actives sur le point de terminaison de streaming, sous forme de liste ou individuellement.postStreamRules()
- Ajoutez ou supprimez des règles à votre flux.getStream()
- Diffuse les tweets en temps réel en fonction d'un ensemble spécifique de règles de filtrage. getSampledStream()
: diffuse environ 1 % de tous les tweets en temps réel. hideTweet()
- Masque ou affiche une réponse à un Tweet. countRecent()
- Recevez un nombre de Tweets correspondant à une requête au cours des 7 derniers jours
countAll()
- Recevez un nombre de Tweets correspondant à une requête
Remarque : Uniquement disponible via la piste de produits Academic Research.
Linkify : Transforme les URL, @usernames, hashtags en liens. Le type de $tweet peut être un objet, un tableau ou du texte. En envoyant un objet ou un tableau, la méthode développera également les liens (t.co).
Twitter:: linkify ( $ tweet );
Il y a : Convertit la date en différence (il y a 2 heures)
Twitter:: ago ( $ timestamp );
LinkUser : génère un lien vers un utilisateur spécifique, par son objet utilisateur (tel que $tweet->user), ou son identifiant/chaîne.
Twitter:: linkUser ( $ user );
LinkTweet : Génère un lien vers un tweet spécifique.
Twitter:: linkTweet ( $ tweet );
Renvoie une collection des Tweets les plus récents publiés par l'utilisateur indiqué par les paramètres screen_name ou user_id.
Route:: get ( ' /userTimeline ' , function ()
{
return Twitter:: getUserTimeline ([ ' screen_name ' => ' thujohn ' , ' count ' => 20 , ' response_format ' => ' json ' ]);
});
Renvoie une collection des Tweets et retweets les plus récents publiés par l'utilisateur authentifié et les utilisateurs qu'il suit.
Route:: get ( ' /homeTimeline ' , function ()
{
return Twitter:: getHomeTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});
Renvoie les X mentions les plus récentes (tweets contenant le @screen_name d'un utilisateur) pour l'utilisateur qui s'authentifie.
Route:: get ( ' /mentionsTimeline ' , function ()
{
return Twitter:: getMentionsTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});
Met à jour le statut actuel de l'utilisateur authentifié, également appelé tweet.
Route:: get ( ' /tweet ' , function ()
{
return Twitter:: postTweet ([ ' status ' => ' Laravel is beautiful ' , ' response_format ' => ' json ' ]);
});
Met à jour l’état actuel de l’utilisateur authentifiant avec les médias.
Route:: get ( ' /tweetMedia ' , function ()
{
$ uploaded_media = Twitter:: uploadMedia ([ ' media ' => File:: get ( public_path ( ' filename.jpg ' ))]);
return Twitter:: postTweet ([ ' status ' => ' Laravel is beautiful ' , ' media_ids ' => $ uploaded_media -> media_id_string ]);
});
Obtenez les informations d'identification de l'utilisateur par e-mail.
$credentials = Twitter::getCredentials([
'include_email' => 'true',
]);
Dans ce qui précède, vous devez transmettre true sous forme de chaîne, pas sous forme booléenne. Le booléen sera converti en
1
ce que Twitter ignore.
Cela suppose également que vos autorisations sont correctement configurées avec Twitter. Vous devez choisir « Obtenir l'e-mail de l'utilisateur » lorsque vous configurez votre application Twitter, transmettre la valeur seule ne suffira pas.
Connectez-vous avec Twitter
use Atymic Twitter Facade Twitter ;
Route:: get ( ' twitter/login ' , [ ' as ' => ' twitter.login ' , static function () {
$ token = Twitter:: getRequestToken ( route ( ' twitter.callback ' ));
if ( isset ( $ token [ ' oauth_token_secret ' ])) {
$ url = Twitter:: getAuthenticateUrl ( $ token [ ' oauth_token ' ]);
Session:: put ( ' oauth_state ' , ' start ' );
Session:: put ( ' oauth_request_token ' , $ token [ ' oauth_token ' ]);
Session:: put ( ' oauth_request_token_secret ' , $ token [ ' oauth_token_secret ' ]);
return Redirect:: to ( $ url );
}
return Redirect:: route ( ' twitter.error ' );
}]);
Route:: get ( ' twitter/callback ' , [ ' as ' => ' twitter.callback ' , static function () {
// You should set this route on your Twitter Application settings as the callback
// https://apps.twitter.com/app/YOUR-APP-ID/settings
if (Session:: has ( ' oauth_request_token ' )) {
$ twitter = Twitter:: usingCredentials ( session ( ' oauth_request_token ' ), session ( ' oauth_request_token_secret ' ));
$ token = $ twitter -> getAccessToken ( request ( ' oauth_verifier ' ));
if (! isset ( $ token [ ' oauth_token_secret ' ])) {
return Redirect:: route ( ' twitter.error ' )-> with ( ' flash_error ' , ' We could not log you in on Twitter. ' );
}
// use new tokens
$ twitter = Twitter:: usingCredentials ( $ token [ ' oauth_token ' ], $ token [ ' oauth_token_secret ' ]);
$ credentials = $ twitter -> getCredentials ();
if ( is_object ( $ credentials ) && ! isset ( $ credentials -> error )) {
// $credentials contains the Twitter user object with all the info about the user.
// Add here your own user logic, store profiles, create new users on your tables...you name it!
// Typically you'll want to store at least, user id, name and access tokens
// if you want to be able to call the API on behalf of your users.
// This is also the moment to log in your users if you're using Laravel's Auth class
// Auth::login($user) should do the trick.
Session:: put ( ' access_token ' , $ token );
return Redirect:: to ( ' / ' )-> with ( ' notice ' , ' Congrats! You ' ve successfully signed in! ' );
}
}
return Redirect:: route ( ' twitter.error ' )
-> with ( ' error ' , ' Crab! Something went wrong while signing you up! ' );
}]);
Route:: get ( ' twitter/error ' , [ ' as ' => ' twitter.error ' , function () {
// Something went wrong, add your own error handling here
}]);
Route:: get ( ' twitter/logout ' , [ ' as ' => ' twitter.logout ' , function () {
Session:: forget ( ' access_token ' );
return Redirect:: to ( ' / ' )-> with ( ' notice ' , ' You ' ve successfully logged out! ' );
}]);
Webhook
Afin de configurer correctement le webhook, vous devrez renvoyer un hachage à l'aide du jeton CRC en réponse à partir de l'URL de votre webhook (plus d'informations).
Route:: post ( ' twitter/webhook ' , [ ' as ' => ' twitter.webhook ' , function (){
if ( request ()-> has ( ' crc_token ' ))
return response ()-> json ([ ' response_token ' => Twitter:: crcHash ( request ()-> crc_token )], 200 );
// Your webhook logic goes here
}]);
Obtenez les tweets des utilisateurs :
// ...
use Atymic Twitter Twitter as TwitterContract ;
use Illuminate Http JsonResponse ;
use Twitter ;
// ...
public function userTweets ( int $ userId ): JsonResponse
{
$ params = [
' place.fields ' => ' country,name ' ,
' tweet.fields ' => ' author_id,geo ' ,
' expansions ' => ' author_id,in_reply_to_user_id ' ,
TwitterContract:: KEY_RESPONSE_FORMAT => TwitterContract:: RESPONSE_FORMAT_JSON ,
];
return JsonResponse:: fromJsonString (Twitter:: userTweets ( $ userId , $ params ));
}
Rechercher des tweets :
// ...
public function searchRecent ( string $ query ): JsonResponse
{
$ params = [
' place.fields ' => ' country,name ' ,
' tweet.fields ' => ' author_id,geo ' ,
' expansions ' => ' author_id,in_reply_to_user_id ' ,
TwitterContract:: KEY_RESPONSE_FORMAT => TwitterContract:: RESPONSE_FORMAT_JSON ,
];
return JsonResponse:: fromJsonString (Twitter:: searchRecent ( $ query , $ params ));
}
// ...
Étant donné que l'API Twitter v2 est en développement actif, vous devrez peut-être appeler un point de terminaison que nous n'avons pas explicitement documenté dans la section « Fonctions » ci-dessus. Voici un exemple de la façon dont vous pouvez utiliser ce package pour effectuer des appels vers des points de terminaison nouvellement ajoutés. Ici, nous utilisons le point de terminaison « compte récent » nouvellement ajouté.
// ...
$ querier = Atymic Twitter Facade Twitter:: forApiV2 ()
-> getQuerier ();
$ result = $ querier
-> withOAuth2Client ()
-> get ( ' tweets/counts/recent ' , [ ' query ' => ' foo ' ]);
// ...
Activez d’abord le mode débogage dans le fichier de configuration.
Ensuite, vous pouvez accéder à la méthode logs().
try
{
$ response = Twitter:: getUserTimeline ([ ' count ' => 20 , ' response_format ' => ' array ' ]);
}
catch ( Exception $ e )
{
// dd(Twitter::error());
dd (Twitter:: logs ());
}
dd ( $ response );