php - developer - Búsqueda de Twitter por hashtag ejemplo API v1.1
twitter oauth2 php (3)
En el pasado, usando la versión 1 de la API de Twitter, usé la siguiente URL para obtener una fuente JSON de todos los tweets con el hashtag "baseball":
http://search.twitter.com/search.json?q=%23baseball&result_type=recent
¿Cómo se logra un resultado similar con API versión 1.1? Estoy usando PHP como mi código del lado del servidor, así que no estoy seguro de si necesito usarlo para autenticar y tal?
El código de muestra sería extremadamente útil. Gracias.
Como ya sabe, ahora se requieren solicitudes autenticadas, por lo que hay algunas cosas que puede necesitar ver primero. La nueva búsqueda 1.1, cómo usar hashtags y autenticación.
Búsqueda de Twitter para 1.1
Los nuevos documentos api de búsqueda de Twitter se pueden encontrar here . De acuerdo con estos documentos:
https://api.twitter.com/1.1/search/tweets.json
es la nueva URL de recurso para usar en la búsqueda.
Búsquedas Hashtag
¡Tienes esa parte correcta! %23
decodifica a un carácter #
.
Autenticación
OAuth es mucho más complejo. Ayudaría si solo usaras una biblioteca que acaba de funcionar.
Aquí hay una publicación que mucha gente encontró útil para ayudarte a realizar solicitudes autenticadas a la API 1.1. Esto incluye una library inclusión de un archivo para realizar solicitudes como las que necesita.
Ejemplo
Este ejemplo supone que está utilizando la biblioteca anterior y configura sus claves, etc. Para realizar su solicitud:
// Your specific requirements
$url = ''https://api.twitter.com/1.1/search/tweets.json'';
$requestMethod = ''GET'';
$getfield = ''?q=#baseball&result_type=recent'';
// Perform the request
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Si eso es. Además de la pequeña configuración que necesitas hacer (como explica mi publicación), para tus claves de desarrollo, eso es todo lo que necesitas para realizar solicitudes autenticadas.
Respuesta
La respuesta se te devuelve en JSON. De la overview :
API v1.1 solo admitirá JSON. Hace tiempo que lo insinuamos, primero retirando el soporte de XML en la API de Streaming y, más recientemente, en la API de tendencias. Hemos elegido respaldar el formato JSON compartido en la plataforma.
Aquí hay un ejemplo simple en python usando auth de solo aplicación usando la API de solicitudes. Obtenga claves creando una aplicación en https://apps.twitter.com/app/new .
api_key = ...
api_secret = ...
# https://dev.twitter.com/oauth/application-only
# The base64 stuff described there is the normal Basic Auth dance.
import requests
r = requests.post(''https://api.twitter.com/oauth2/token'',
auth=(api_key, api_secret),
headers={''Content-Type'':
''application/x-www-form-urlencoded;charset=UTF-8''},
data=''grant_type=client_credentials'')
assert r.json()[''token_type''] == ''bearer''
bearer = r.json()[''access_token'']
url = ''https://api.twitter.com/1.1/search/tweets.json?q=%23yourhashtag''
r = requests.get(url, headers={''Authorization'': ''Bearer '' + bearer})
print r.json()
Si solo quieres probar, puedes hacer lo siguiente:
Acceda a la consola de desarrollo de twitter: https://dev.twitter.com/console
En Authentication put: OAuth 1, que le pedirá que otorgue el permiso de su cuenta de Twitter.
Solicitar URL poner OBTENER
En url: https://api.twitter.com/1.1/search/tweets.json?q=%23yourhashtag
Después de Enviar, en la ventana Solicitud, copie el valor de Autorización.
Ahora ponlo en tu encabezado de solicitud.
Ve ejemplo:
func main() {
client := &http.Client{}
req, _ := http.NewRequest("GET", "https://api.twitter.com/1.1/search/tweets.json?q=%23golang", nil)
req.Header.Add("Authorization", `OAuth oauth_consumer_key=...`)
resp, _ := client.Do(req)
io.Copy(os.Stdout, resp.Body)
}