Поиск в Twitter по hashtag example API v1.1

Раньше, используя Twitter API версии 1, я использовал следующий URL-адрес, чтобы получить фид JSON всех твитов с хэштегом «бейсбол»:

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

Как достичь аналогичного результата с использованием API версии 1.1? Я использую PHP в качестве своего кода на стороне сервера, поэтому не уверен, что мне нужно использовать его для аутентификации и т. Д.

Пример кода будет очень полезен. Благодарю.

Как вы знаете, теперь требуются аутентифицированные запросы, поэтому есть несколько вещей, которые вам, возможно, придется сначала взглянуть на них. Новый поиск 1.1, использование хэштегов и аутентификация.

Поиск в Twitter 1.1

Новые поисковые запросы twitter можно найти здесь . Согласно этим документам:

https://api.twitter.com/1.1/search/tweets.json – это новый URL-адрес ресурса для поиска.

Поиск в Hashtag

У тебя есть эта часть! %23 декодирует символ # .

Аутентификация

OAuth намного сложнее. Это поможет, если вы просто используете только что созданную библиотеку.

Вот сообщение, которое многие люди считают полезным, чтобы помочь вам выполнить аутентифицированные запросы к API 1.1. Это включает в себя библиотеку с одним файлом, чтобы делать запросы, подобные тем, которые вам нужны.

пример

В этом примере предполагается, что вы используете указанную выше библиотеку и настраиваете свои ключи и т. Д. Чтобы сделать свой запрос:

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

Да это оно. Помимо небольшой настройки, которую вам нужно сделать (как объясняет мой пост), для ваших ключей разработчика это все, что вам нужно для выполнения аутентифицированных запросов.

отклик

Ответ возвращается вам в JSON. Из обзора :

API v1.1 будет поддерживать только JSON. Мы уже много раз намекали на это, сначала отказавшись от поддержки XML в Streaming API и совсем недавно в API тенденций. Мы решили поддержать нашу поддержку формата JSON, доступного по всей платформе.

Если вы просто хотите протестировать, вы можете сделать следующее:

Доступ к консоли twitter dev: https://dev.twitter.com/console

В разделе «Аутентификация» поставьте: OAuth 1, который попросит вас дать разрешение от вашей учетной записи Twitter.

Введите URL-адрес запроса GET

В url: https://api.twitter.com/1.1/search/tweets.json?q=%23yourhashtag

После отправки в окне «Запрос» скопируйте значение «Авторизация».

Теперь поместите его в свой заголовок запроса.

Пример:

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

Вот простой пример в python, использующий только приложение, используя API запросов. Получите ключи, создав приложение на странице 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()