Nota importante: A mediados de 2018, el proceso para obtener tokens API de Twitter se volvió mucho más burocrático. Me ha llevado más de una semana de trabajo obtener un conjunto de tokens API, y esto es para un proyecto de código abierto para ustedes y niñas con más de 1.2 millones de instalaciones en Packagist y 1.6k estrellas en Github, lo que en teoría debería ser una prioridad más alta .
Si tiene la tarea de trabajar con la API de Twitter para su trabajo, debe tener en cuenta este tiempo de espera potencialmente extremadamente largo. También considere otras vías de redes sociales como Facebook o Instagram y brinde estas opciones, ya que el proceso para recuperar sus tokens es instantáneo.
¿Entonces quieres usar la API de Twitter v1.1?
Nota: los archivos para estos están en GitHub .
La versión 1.0 pronto quedará obsoleta y no se permitirán solicitudes no autorizadas. Entonces, aquí hay una publicación para ayudarlo a hacer eso, junto con una clase de PHP para facilitarle la vida.
1. Cree una cuenta de desarrollador: configure una cuenta de desarrollador en Twitter
Debe visitar el sitio oficial de desarrolladores de Twitter y registrarse para obtener una cuenta de desarrollador. Este es un paso gratuito y necesario para realizar solicitudes para la API v1.1.
2. Cree una aplicación: cree una aplicación en el sitio de desarrolladores de Twitter
¿Qué? ¿Pensaste que podrías hacer solicitudes no autenticadas? No con la API v1.1 de Twitter. Debe visitar http://dev.twitter.com/apps y hacer clic en el botón "Crear aplicación".
En esta página, complete los detalles que desee. Para mí, no importó, porque solo quería hacer un montón de solicitudes de bloqueo para deshacerme de los seguidores de spam. El punto es que obtendrá un conjunto de claves únicas para usar en su aplicación.
Entonces, el punto de crear una aplicación es darse un juego de llaves (y Twitter). Estos son:
- La clave del consumidor
- El secreto del consumidor
- El token de acceso
- El secreto del token de acceso
Hay un poco de información aquí en lo que estas fichas para.
3. Cree tokens de acceso : los necesitará para realizar solicitudes exitosas
OAuth solicita algunos tokens. Por lo tanto, debe tenerlos generados por usted.
Haga clic en "crear mi token de acceso" en la parte inferior. Luego, una vez que se desplace hacia la parte inferior nuevamente, tendrá algunas claves recién generadas. Debe tomar las cuatro claves previamente etiquetadas de esta página para sus llamadas a la API, así que anótelas en alguna parte.
4. Cambiar el nivel de acceso : no quieres solo lectura, ¿verdad?
Si desea hacer un uso decente de esta API, deberá cambiar su configuración a Leer y escribir si está haciendo algo más que la recuperación de datos estándar utilizando solicitudes GET .
Elija la pestaña "Configuración" cerca de la parte superior de la página.
Dé a su aplicación acceso de lectura / escritura y presione "Actualizar" en la parte inferior.
Puede leer más sobre el modelo de permiso de aplicaciones que Twitter usa aquí.
5. Escriba el código para acceder a la API : he hecho la mayor parte por usted
Combiné el código anterior, con algunas modificaciones y cambios, en una clase PHP, por lo que es realmente simple hacer las solicitudes que necesita.
Esto usa OAuth y la API de Twitter v1.1 , y la clase que he creado que puedes encontrar a continuación.
require_once('TwitterAPIExchange.php');
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN",
'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET",
'consumer_key' => "YOUR_CONSUMER_KEY",
'consumer_secret' => "YOUR_CONSUMER_SECRET"
);
Asegúrese de poner las claves que obtuvo de su aplicación en sus respectivos espacios.
A continuación, debe elegir una URL a la que desea realizar una solicitud. Twitter tiene su documentación API para ayudarlo a elegir qué URL y también el tipo de solicitud (POST o GET).
/** URL for REST request, see: https://dev.twitter.com/docs/api/1.1/ **/
$url = 'https://api.twitter.com/1.1/blocks/create.json';
$requestMethod = 'POST';
En la documentación, cada URL indica lo que puede pasarle. Si estamos usando la URL de "bloques" como la anterior, puedo pasar los siguientes parámetros POST:
/** POST fields required by the URL above. See relevant docs as above **/
$postfields = array(
'screen_name' => 'usernameToBlock',
'skip_status' => '1'
);
Ahora que ha configurado lo que desea hacer con la API, es hora de hacer la solicitud real.
/** Perform the request and echo the response **/
$twitter = new TwitterAPIExchange($settings);
echo $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
Y para una solicitud POST , eso es todo.
Para una solicitud GET , es un poco diferente. Aquí hay un ejemplo:
/** Note: Set the GET field BEFORE calling buildOauth(); **/
$url = 'https://api.twitter.com/1.1/followers/ids.json';
$getfield = '?username=J7mbo';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Ejemplo de código final : para una simple solicitud GET de una lista de mis seguidores.
$url = 'https://api.twitter.com/1.1/followers/list.json';
$getfield = '?username=J7mbo&skip_status=1';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
¡He puesto estos archivos en GitHub con crédito a @ lackovic10 y @rivers! Espero que alguien lo encuentre útil; Sé que lo hice (lo usé para el bloqueo masivo en un bucle).
Además, para aquellos en Windows que tienen problemas con los certificados SSL, miren esta publicación . Esta biblioteca utiliza cURL debajo del capó, por lo que debe asegurarse de tener sus certificados cURL configurados probablemente. Google también es tu amigo.