API de Twitter para Laravel 10.x, 11.x (y nuevas versiones a medida que se lanzan). También es compatible con otros marcos a través de PHP-DI (o siéntase libre de agregar soporte para su marco a través de PR)
Debe crear una aplicación y crear su token de acceso en la Gestión de aplicaciones.
composer require atymic/twitter:^3.0 -W
Simplemente configure las siguientes variables de entorno en su .env
.
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_TOKEN_SECRET=
TWITTER_API_VERSION=
Ejecute php artisan vendor:publish --provider="AtymicTwitterServiceProviderLaravelServiceProvider"
/config/twitter.php
3.x es la versión principal actual y no es compatible con versiones anteriores de 2.x.
Consulte la guía de migración en UPGRADE.md.
2.x ya no se mantiene. No aceptamos correcciones de errores, actualice a 3.x
Puede elegir entre tres formatos de salida diferentes. De forma predeterminada, las respuestas de API v1 se devolverán como objetos, mientras que las respuestas de API v2 se devolverán como JSON. Para cambiar esto, use la opción response_format
en los parámetros que pasa a cualquier método.
response_format : object|json|array (v1 default:object) (v2 default:json)
Para configurar la versión predeterminada de la API de Twitter en v2 en lugar de la v1.1
predeterminada, configure TWITTER_API_VERSION
en 2
en su .env
.
Si ha configurado la API v1.1
como predeterminada, puede usar Twitter::forApiV2()
para obtener una instancia del cliente v2. Lo mismo ocurre con la obtención de una instancia v1
de un cliente v2
, usando Twitter::forApiV1()
.
Es seguro llamar Twitter::forApiV1()
en una instancia de cliente v1
o v2
.
getSettings()
: devuelve la configuración (incluida la tendencia actual, la información geográfica y el tiempo de sueño) para el usuario que se autentica.getCredentials()
postSettings()
: actualiza la configuración del usuario que se autentica.postSettingsDevice()
: establece a qué dispositivo Twitter entrega actualizaciones para el usuario que se autentica. No enviar ninguno como parámetro del dispositivo deshabilitará las actualizaciones por SMS.postProfile()
: establece algunos valores que los usuarios pueden configurar en la pestaña "Cuenta" de su página de configuración. Sólo se actualizarán los parámetros especificados.postBackground()
: actualiza la imagen de fondo del perfil del usuario que se autentica. Este método también se puede utilizar para habilitar o deshabilitar la imagen de fondo del perfil.postProfileImage()
: actualiza la imagen de perfil del usuario que se autentica. Tenga en cuenta que este método espera datos sin procesar de varias partes, no una URL a una imagen.destroyUserBanner()
: elimina el banner de perfil cargado para el usuario que se autentica. Devuelve HTTP 200 en caso de éxito.postUserBanner()
: carga un banner de perfil en nombre del usuario que se autentica. Para obtener mejores resultados, cargue un nodo perfil_banner_url en sus objetos Usuarios. setWebhook($env, $url)
: registra una URL de webhook para todos los tipos de eventos en el entorno determinado.crcHash($crcToken)
: devuelve el hash HMAC SHA-256 del token CRC y el secreto del consumidor proporcionados. Deberá devolver esto en su webhook (más información).getWebhooks($env)
: devuelve las URL de webhooks para el entorno determinado (o todos los entornos si no se proporciona ninguno) y sus estados para la aplicación de autenticación.updateWebhooks($env, $webhookId)
: activa la verificación de respuesta al desafío (CRC) para el webhook de entornos determinados para todas las actividades. Si la verificación es exitosa, devuelve verdadero y vuelve a habilitar el webhook estableciendo su estado en válido.destroyWebhook($env, $webhookId)
: elimina el webhook de la configuración de todas las actividades de la aplicación proporcionada. Devuelve verdadero en caso de éxito.setSubscriptions($env)
: suscribe la aplicación proporcionada a todos los eventos del entorno proporcionado para todos los tipos de mensajes. Devuelve verdadero en caso de éxito.getSubscriptions($env)
: devuelve verdadero si el contexto de usuario proporcionado tiene una suscripción activa con la aplicación proporcionada.getSubscriptionsCount()
: devuelve el recuento de suscripciones que están actualmente activas en su cuenta para todas las actividades.getSubscriptionsList($env)
: devuelve una lista de las suscripciones actuales del tipo Todas las actividades.destroyUserSubscriptions($env, $userId)
: desactiva la suscripción para la identificación de usuario especificada del entorno. Devuelve verdadero en caso de éxito. getBlocks()
: devuelve una colección de objetos de usuario que el usuario que se autentica está bloqueando.getBlocksIds()
: devuelve una matriz de identificadores de usuario numéricos que el usuario autenticador está bloqueando.postBlock()
: impide que el usuario especificado siga al usuario que se autentica. Además, el usuario bloqueado no aparecerá en las menciones ni en la línea de tiempo de los usuarios autenticados (a menos que otro usuario lo retuitee). Si existe una relación de seguimiento o amistad, se destruye.destroyBlock()
: desbloquea al usuario especificado en el parámetro ID para el usuario que se autentica. Devuelve el usuario desbloqueado en el formato solicitado cuando tiene éxito. Si las relaciones existían antes de que se implementara el bloqueo, no se restaurarán. getDm()
: devuelve un único evento de mensaje directo, especificado por un parámetro de identificación.getDms()
: devuelve todos los eventos de mensajes directos (tanto enviados como recibidos) dentro de los últimos 30 días. Ordenados en orden cronológico inverso.destroyDm()
: destruye el mensaje directo especificado en el parámetro ID requerido. El usuario autenticador debe ser el destinatario del mensaje directo especificado.postDm()
: publica un nuevo evento message_create que genera un mensaje directo enviado a un usuario específico por parte del usuario que se autentica. Devuelve un evento si tiene éxito. Admite la publicación de mensajes directos con respuesta rápida opcional y archivos adjuntos multimedia. getFavorites()
: devuelve los 20 Tweets más recientes marcados como favoritos por el usuario especificado o que se autentica.destroyFavorite()
: elimina de favoritos el estado especificado en el parámetro ID como usuario de autenticación. Devuelve el estado no favorito en el formato solicitado cuando tiene éxito.postFavorite()
: Favorece el estado especificado en el parámetro ID como usuario de autenticación. Devuelve el estado favorito cuando tiene éxito. getNoRters()
: devuelve una colección de user_ids de los que el usuario actualmente autenticado no desea recibir retweets.getFriendsIds()
: devuelve una colección de ID de usuario con cursor para cada usuario que sigue al usuario especificado.getFollowersIds()
: devuelve una colección de ID de usuario con cursor para cada usuario que sigue al usuario especificado.getFriendshipsIn()
: devuelve una colección de ID numéricos para cada usuario que tiene una solicitud pendiente para seguir al usuario que se autentica.getFriendshipsOut()
: devuelve una colección de ID numéricos para cada usuario protegido para quien el usuario que se autentica tiene una solicitud de seguimiento pendiente.postFollow()
: permite que los usuarios autenticados sigan al usuario especificado en el parámetro ID.postUnfollow()
: permite al usuario que se autentica dejar de seguir al usuario especificado en el parámetro ID.postFollowUpdate()
: permite habilitar o deshabilitar retweets y notificaciones del dispositivo del usuario especificado.getFriendships()
: devuelve información detallada sobre la relación entre dos usuarios arbitrarios.getFriends()
: devuelve una colección de objetos de usuario con cursor para cada usuario que sigue el usuario especificado (también conocidos como sus "amigos").getFollowers()
: devuelve una colección de objetos de usuario con cursor para los usuarios que siguen al usuario especificado.getFriendshipsLookup()
: devuelve las relaciones del usuario que se autentica a la lista separada por comas de hasta 100 nombres de pantalla o identificadores de usuario proporcionados. Los valores para las conexiones pueden ser: siguiente, siguiente_requerido, seguido_por, ninguno, bloqueo, silenciamiento. getGeo()
: devuelve toda la información sobre un lugar conocido.getGeoReverse()
: dada una latitud y una longitud, busca hasta 20 lugares que pueden usarse como place_id al actualizar un estado.getGeoSearch()
: busca lugares que se pueden adjuntar a un estado/actualización. Dado un par de latitud y longitud, una dirección IP o un nombre, esta solicitud devolverá una lista de todos los lugares válidos que se pueden usar como place_id al actualizar un estado.getGeoSimilar()
: localiza lugares cerca de las coordenadas dadas que tienen un nombre similar. Conceptualmente, usarías este método para obtener una lista de lugares conocidos para elegir primero. Luego, si el lugar deseado no existe, realice una solicitud para PUBLICAR geo/lugar para crear uno nuevo. El token contenido en la respuesta es el token necesario para poder crear un nuevo lugar. postSpam()
: informa al usuario especificado como cuenta de spam en Twitter. Además, realiza el equivalente de bloques POST/creación en nombre del usuario autenticado.getHelpConfiguration()
: devuelve la configuración actual utilizada por Twitter, incluidos los slugs de twitter.com que no son nombres de usuario, resoluciones máximas de fotografías y longitudes de URL de t.co.getHelpLanguages()
: devuelve la lista de idiomas admitidos por Twitter junto con el código de idioma admitido por Twitter.getHelpPrivacy()
: devuelve la política de privacidad de Twitter.getHelpTos()
: devuelve los Términos de servicio de Twitter. Nota: no son lo mismo que la Política para desarrolladores.getAppRateLimit()
: devuelve los límites de velocidad actuales para los métodos que pertenecen a las familias de recursos especificadas. getLists()
: devuelve todas las listas a las que se suscribe el usuario especificado o autenticado, incluida la suya propia. El usuario se especifica mediante los parámetros user_id o screen_name. Si no se proporciona ningún usuario, se utiliza el usuario de autenticación.getListStatuses()
: devuelve una línea de tiempo de tweets escritos por miembros de la lista especificada. Los retweets se incluyen de forma predeterminada. Utilice el parámetro include_rts=false para omitir retweets.destroyListMember()
: elimina el miembro especificado de la lista. El usuario autenticado debe ser el propietario de la lista para eliminar miembros de la lista.getListsMemberships()
: devuelve las listas a las que se ha agregado el usuario especificado. Si no se proporcionan user_id o screen_name, se devuelven las membresías del usuario que se autentica.getListsSubscribers()
: devuelve los suscriptores de la lista especificada. Los suscriptores de la lista privada solo se mostrarán si el usuario autenticado posee la lista especificada.postListSubscriber()
: suscribe al usuario autenticado a la lista especificada.getListSubscriber()
: devuelve los suscriptores de la lista especificada. Los suscriptores de la lista privada solo se mostrarán si el usuario autenticado posee la lista especificada.destroyListSubscriber()
: cancela la suscripción del usuario autenticado de la lista especificada.postListCreateAll()
: agrega varios miembros a una lista, especificando una lista separada por comas de identificadores de miembros o nombres de pantalla. El usuario autenticado debe ser propietario de la lista para poder agregarle miembros. Tenga en cuenta que las listas no pueden tener más de 5000 miembros y que está limitado a agregar hasta 100 miembros a una lista a la vez con este método.getListMember()
: comprueba si el usuario especificado es miembro de la lista especificada.getListMembers()
: devuelve los miembros de la lista especificada. Los miembros de la lista privada solo se mostrarán si el usuario autenticado posee la lista especificada.postListMember()
: agrega un miembro a una lista. El usuario autenticado debe ser propietario de la lista para poder agregarle miembros. Tenga en cuenta que las listas no pueden tener más de 5000 miembros.destroyList()
: elimina la lista especificada. El usuario autenticado debe ser propietario de la lista para poder destruirla.postListUpdate()
: actualiza la lista especificada. El usuario autenticado debe ser propietario de la lista para poder actualizarla.postList()
: crea una nueva lista para el usuario autenticado. Tenga en cuenta que no puede crear más de 20 listas por cuenta.getList()
: devuelve la lista especificada. Las listas privadas solo se mostrarán si el usuario autenticado posee la lista especificada.getListSubscriptions()
: obtiene una colección de las listas a las que está suscrito el usuario especificado, 20 listas por página de forma predeterminada. No incluye listas propias del usuario.destroyListMembers()
: elimina varios miembros de una lista, especificando una lista separada por comas de identificadores de miembros o nombres de pantalla. El usuario autenticado debe ser propietario de la lista para poder eliminar miembros de ella. Tenga en cuenta que las listas no pueden tener más de 500 miembros y que está limitado a eliminar hasta 100 miembros de una lista a la vez con este método.getListOwnerships()
: devuelve las listas propiedad del usuario de Twitter especificado. Las listas privadas sólo se mostrarán si el usuario autenticado también es el propietario de las listas. uploadMedia()
: sube medios (imágenes) a Twitter para utilizarlos en un Tweet o una tarjeta alojada en Twitter. getSearch()
: devuelve una colección de Tweets relevantes que coinciden con una consulta específica.getSavedSearches()
: devuelve las consultas de búsqueda guardadas del usuario autenticado.getSavedSearch()
: recupera la información de la búsqueda guardada representada por la identificación proporcionada. El usuario que se autentica debe ser el propietario del ID de búsqueda guardado que se solicita.postSavedSearch()
: crea una nueva búsqueda guardada para el usuario autenticado. Un usuario sólo podrá tener 25 búsquedas guardadas.destroySavedSearch()
: destruye una búsqueda guardada para el usuario que se autentica. El usuario que se autentica debe ser el propietario de la identificación de búsqueda guardada que se va a destruir. getMentionsTimeline()
: devuelve las 20 menciones más recientes (tweets que contienen el @screen_name de un usuario) para el usuario que se autentica.getUserTimeline()
: devuelve una colección de los Tweets más recientes publicados por el usuario indicado por los parámetros screen_name o user_id.getHomeTimeline()
: devuelve una colección de los Tweets y retweets más recientes publicados por el usuario que se autentica y los usuarios a los que sigue. La línea de tiempo de inicio es fundamental para la forma en que la mayoría de los usuarios interactúan con el servicio de Twitter. *getRtsTimeline()
: devuelve los tweets más recientes escritos por el usuario que se autentica y que han sido retuiteados por otros.getRts()
: devuelve una colección de los 100 retweets más recientes del tweet especificado por el parámetro id.getTweet()
: devuelve un único Tweet, especificado por el parámetro id. El autor del Tweet también estará incrustado en el tweet.destroyTweet()
: destruye el estado especificado por el parámetro ID requerido. El usuario autenticador debe ser el autor del estado especificado. Devuelve el estado destruido si tiene éxito.postTweet()
: actualiza el estado actual del usuario que se autentica, también conocido como tweeting.postRt()
: retuitea un tweet. Devuelve el tweet original con detalles del retweet incrustados.getOembed()
: devuelve un único Tweet, especificado mediante la URL web del Tweet o el ID del Tweet, en un formato compatible con oEmbed. El fragmento HTML devuelto se reconocerá automáticamente como un Tweet incrustado cuando el widget JavaScript de Twitter se incluya en la página.getRters()
: devuelve una colección de hasta 100 ID de usuario que pertenecen a usuarios que han retuiteado el tweet especificado por el parámetro id.getStatusesLookup()
: devuelve objetos de tweet completamente hidratados para hasta 100 tweets por solicitud, según lo especificado por los valores separados por comas pasados al parámetro id. getTrendsPlace()
: devuelve los 10 temas de tendencias principales para un WOEID específico, si hay información de tendencias disponible para él.getTrendsAvailable()
: devuelve las ubicaciones para las que Twitter tiene información sobre temas de tendencia.getTrendsClosest()
: devuelve las ubicaciones para las que Twitter tiene información de temas de tendencia, más cercanas a una ubicación específica. getUsersLookup()
: devuelve objetos de usuario completamente hidratados para hasta 100 usuarios por solicitud, según lo especificado por los valores separados por comas pasados a los parámetros user_id y/o screen_name.getUsers()
: devuelve una variedad de información sobre el usuario especificado por el parámetro user_id o screen_name requerido. El Tweet más reciente del autor se devolverá en línea cuando sea posible.getUsersSearch()
: proporciona una interfaz de búsqueda sencilla basada en relevancia para cuentas de usuarios públicos en Twitter. Intente realizar consultas por tema de interés, nombre completo, nombre de la empresa, ubicación u otros criterios. No se admiten búsquedas de coincidencias exactas.getUserBanner()
: devuelve un mapa de las variaciones de tamaño disponibles del banner de perfil del usuario especificado. Si el usuario no ha subido un banner de perfil, se entregará un HTTP 404 en su lugar. Este método se puede utilizar en lugar de la manipulación de cadenas en el perfil_banner_url devuelto en los objetos de usuario como se describe en Imágenes de perfil y banners.muteUser()
: silencia al usuario especificado en el parámetro ID para el usuario que se autentica.unmuteUser()
: desactiva el silencio del usuario especificado en el parámetro ID para el usuario que se autentica.mutedUserIds()
: devuelve una matriz de identificadores de usuario numéricos que el usuario autenticador ha silenciado.mutedUsers()
: devuelve una matriz de objetos de usuario que el usuario autenticador ha silenciado.getSuggesteds()
: accede a los usuarios de una categoría determinada de la lista de usuarios sugeridos de Twitter.getSuggestions()
: acceso a la lista de usuarios sugeridos de Twitter. Esto devuelve la lista de categorías de usuarios sugeridas. La categoría se puede utilizar en GET usuarios/sugerencias/:slug para obtener los usuarios de esa categoría.getSuggestedsMembers()
: acceda a los usuarios en una categoría determinada de la lista de usuarios sugeridos de Twitter y devuelva su estado más reciente si no son un usuario protegido.getTweet()
: devuelve una variedad de información sobre un único Tweet especificado por el ID solicitado.getTweets()
: devuelve una variedad de información sobre el Tweet especificado por el ID solicitado o la lista de ID. searchRecent()
: el punto final de búsqueda reciente devuelve tweets de los últimos siete días que coinciden con una consulta de búsqueda.
searchAll()
: el punto final de búsqueda de archivo completo devuelve el historial completo de Tweets públicos que coinciden con una consulta de búsqueda; desde que se creó el primer Tweet el 26 de marzo de 2006.
Nota: Este punto final solo está disponible para aquellos aprobados para el segmento de productos de Investigación Académica.
userTweets()
: devuelve tweets compuestos por un único usuario, especificado por el ID de usuario solicitado. De forma predeterminada, se devuelven los diez Tweets más recientes por solicitud. Usando la paginación, se pueden recuperar los 3200 tweets más recientes.userMentions()
: devuelve tweets que mencionan a un único usuario especificado por el ID de usuario solicitado. De forma predeterminada, se devuelven los diez Tweets más recientes por solicitud. Usando la paginación, se pueden recuperar hasta los 800 Tweets más recientes. getStreamRules()
: devuelve una lista de reglas actualmente activas en el punto final de transmisión, ya sea como una lista o individualmente.postStreamRules()
: agrega o elimina reglas a tu transmisión.getStream()
: transmite tweets en tiempo real según un conjunto específico de reglas de filtrado. getSampledStream()
: transmite aproximadamente el 1% de todos los Tweets en tiempo real. hideTweet()
: oculta o muestra una respuesta a un Tweet. countRecent()
: recibe un recuento de Tweets que coinciden con una consulta en los últimos 7 días
countAll()
: recibe un recuento de Tweets que coinciden con una consulta
Nota: Solo disponible a través del canal de productos Academic Research.
Linkify: transforma URL, @nombres de usuario y hashtags en enlaces. El tipo de $tweet puede ser objeto, matriz o texto. Al enviar un objeto o una matriz, el método también expandirá los enlaces (t.co).
Twitter:: linkify ( $ tweet );
Hace: convierte la fecha en diferencia (hace 2 horas)
Twitter:: ago ( $ timestamp );
LinkUser: Genera un enlace a un usuario específico, por su objeto de usuario (como $tweet->user), o id/cadena.
Twitter:: linkUser ( $ user );
LinkTweet: Genera un enlace a un tweet específico.
Twitter:: linkTweet ( $ tweet );
Devuelve una colección de los Tweets más recientes publicados por el usuario indicado por los parámetros screen_name o user_id.
Route:: get ( ' /userTimeline ' , function ()
{
return Twitter:: getUserTimeline ([ ' screen_name ' => ' thujohn ' , ' count ' => 20 , ' response_format ' => ' json ' ]);
});
Devuelve una colección de los Tweets y retweets más recientes publicados por el usuario que se autentica y los usuarios a los que sigue.
Route:: get ( ' /homeTimeline ' , function ()
{
return Twitter:: getHomeTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});
Devuelve las X menciones más recientes (tweets que contienen el @screen_name de un usuario) para el usuario que se autentica.
Route:: get ( ' /mentionsTimeline ' , function ()
{
return Twitter:: getMentionsTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});
Actualiza el estado actual del usuario que se autentica, también conocido como tweeting.
Route:: get ( ' /tweet ' , function ()
{
return Twitter:: postTweet ([ ' status ' => ' Laravel is beautiful ' , ' response_format ' => ' json ' ]);
});
Actualiza el estado actual del usuario que se autentica con medios.
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 ]);
});
Obtenga credenciales de usuario con correo electrónico.
$credentials = Twitter::getCredentials([
'include_email' => 'true',
]);
En lo anterior, debes pasar verdadero como una cadena, no como un valor booleano. El valor booleano se convertirá en
1
, que Twitter ignora.
Esto también supone que tienes tus permisos configurados correctamente con Twitter. Tienes que elegir 'Obtener correo electrónico del usuario' cuando configuras tu aplicación de Twitter; pasar el valor por sí solo no será suficiente.
Iniciar sesión con 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! ' );
}]);
gancho web
Para configurar el webhook correctamente, deberá devolver un hash utilizando el token CRC como respuesta desde la URL de su webhook (más información).
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
}]);
Obtenga tweets de usuarios:
// ...
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 ));
}
Buscar tuits:
// ...
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 ));
}
// ...
Dado que Twitter API v2 está en desarrollo activo, es posible que necesites llamar a un punto final que no documentamos explícitamente en la sección "Funciones" anterior. A continuación se muestra un ejemplo de cómo puede utilizar este paquete para realizar llamadas a cualquier punto final recién agregado. Aquí utilizamos el punto final de "recuento reciente" recién agregado.
// ...
$ querier = Atymic Twitter Facade Twitter:: forApiV2 ()
-> getQuerier ();
$ result = $ querier
-> withOAuth2Client ()
-> get ( ' tweets/counts/recent ' , [ ' query ' => ' foo ' ]);
// ...
Primero active el modo de depuración en el archivo de configuración.
Luego puede acceder al método logs().
try
{
$ response = Twitter:: getUserTimeline ([ ' count ' => 20 , ' response_format ' => ' array ' ]);
}
catch ( Exception $ e )
{
// dd(Twitter::error());
dd (Twitter:: logs ());
}
dd ( $ response );