Раньше, используя 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()