Подтвердить что ты не робот

Поиск в 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 в качестве своего кода на стороне сервера, поэтому не уверен, что мне нужно использовать его для аутентификации и т.д.

Пример кода будет очень полезен. Спасибо.

4b9b3361

Ответ 1

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

Twitter Поиск 1.1

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

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

Поиск Hashtag

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

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

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

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

Пример

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

// 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. Из overview:

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

Ответ 2

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

Доступ к консоли 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)
}

Ответ 3

Вот простой пример в 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()