it-swarm.com.de

Twitter-Suche mit Hashtag-Beispiel-API v1.1

In der Vergangenheit habe ich mithilfe der Twitter-API-Version 1 die folgende URL verwendet, um einen JSON-Feed aller Tweets mit dem Hashtag "baseball" abzurufen:

http://search.Twitter.com/search.json?q=%23baseball&result_type=recent

Wie erzielen Sie mit der API-Version 1.1 ein ähnliches Ergebnis? Ich verwende PHP als serverseitigen Code, bin mir also nicht sicher, ob ich ihn zur Authentifizierung und dergleichen verwenden muss?

Beispielcode wäre sehr hilfreich. Vielen Dank.

21
John

Wie Sie wissen, sind jetzt authentifizierte Anforderungen erforderlich. Es gibt also einige Dinge, die Sie möglicherweise zuerst überprüfen müssen. Die neue 1.1-Suche, Verwendung von Hashtags und Authentifizierung.

Twitter Suche nach 1.1

Die neuen Twitter-Such-API-Dokumente finden Sie hier . Nach diesen Dokumenten:

https://api.Twitter.com/1.1/search/tweets.json ist die neue Ressourcen-URL, die für die Suche verwendet werden soll.

Hashtag-Suche

Du hast diesen Teil richtig verstanden! %23 dekodiert in ein # Zeichen.

Authentifizierung

OAuth ist viel komplexer. Es wäre hilfreich, wenn Sie nur eine Bibliothek verwenden würden, die gerade funktioniert.

Hier ist ein Beitrag viele Leute haben sich als nützlich erwiesen, um authentifizierte Anfragen an die 1.1-API zu stellen. Dies beinhaltet ein One-File-Include Bibliothek , um Anfragen wie die von Ihnen benötigten zu stellen.

Beispiel

In diesem Beispiel wird davon ausgegangen, dass Sie die obige Bibliothek verwenden und Ihre Schlüssel usw. einrichten. So stellen Sie Ihre Anfrage:

// 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();

Ja das ist es. Abgesehen von den wenigen Einstellungen, die Sie (wie in meinem Post erklärt) für Ihre Entwicklungsschlüssel vornehmen müssen, ist dies alles, was Sie benötigen, um authentifizierte Anforderungen auszuführen.

Antwort

Die Antwort wird in JSON an Sie zurückgegeben. Aus der Übersicht :

API 1.1 unterstützt nur JSON. Wir haben dies bereits seit einiger Zeit angedeutet, indem wir die XML-Unterstützung zuerst für die Streaming-API und in jüngerer Zeit für die Trends-API eingestellt haben. Wir haben uns entschieden, unsere Unterstützung für das JSON-Format zu verwenden, das für die gesamte Plattform freigegeben ist.

38
Jimbo

Wenn Sie nur testen möchten, können Sie Folgendes tun:

Greifen Sie auf die Twitter-Entwicklerkonsole zu: https://dev.Twitter.com/console

Geben Sie unter Authentifizierung Folgendes ein: OAuth 1, um die Erlaubnis Ihres Twitter-Kontos einzugeben.

URL anfordern GET setzen

In URL: https://api.Twitter.com/1.1/search/tweets.json?q=%23yourhashtag

Kopieren Sie nach dem Senden im Anforderungsfenster den Autorisierungswert.

Tragen Sie es nun in Ihren Anfragekopf ein.

Zum Beispiel:

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)
}
4
guilhermebr

Hier ist ein einfaches Beispiel in python using application-only auth unter Verwendung der Anforderungs-API. Holen Sie sich Schlüssel, indem Sie eine App unter https://apps.Twitter.com erstellen/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()
1
thakis