Twitter search by hashtag example API v1.1

后端 未结 3 1874
萌比男神i
萌比男神i 2020-12-23 12:12

In the past, using Twitter API version 1, I used the following URL to get a JSON feed of all tweets with the hashtag \"baseball\":

http://search.twitter.com/search.

相关标签:
3条回答
  • 2020-12-23 12:58

    Here's a simple example in python using application-only auth using the requests API. Get keys by creating an app at 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()
    
    0 讨论(0)
  • 2020-12-23 13:04

    If you just want to test, you can do the follow:

    Access the twitter dev console: https://dev.twitter.com/console

    In Authentication put: OAuth 1, that will ask you to give permission from your twitter account.

    Request URL put GET

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

    After Send, in Request window, copy the Authorization value.

    Now put it in your request header.

    Go example:

    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)
    }
    
    0 讨论(0)
  • 2020-12-23 13:11

    As you know, authenticated requests are now required, so there's a few things that you may need to take a look at first. The new 1.1 search, how to use hashtags, and authentication.

    Twitter Search for 1.1

    The new twitter search api docs can be found here. According to these docs:

    https://api.twitter.com/1.1/search/tweets.json is the new resource URL to use for search.

    Hashtag searches

    You've got that part right! %23 decodes to a # character.

    Authentication

    OAuth is a lot more complex. It would help if you just used a library that just worked.

    Here's a post a lot of people found useful to help you make authenticated requests to the 1.1 API. This includes a one-file include library to make requests like those you require.

    Example

    This example assumes you're using the above library and set up your keys etc. To make your request:

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

    Yes, that's it. Apart from the little setting up you need to do (as my post explains), for your dev keys, that's everything you need to perform authenticated requests.

    Response

    The response is returned to you in JSON. From the overview:

    API v1.1 will support JSON only. We've been hinting at this for some time now, first dropping XML support on the Streaming API and more recently on the trends API. We've chosen to throw our support behind the JSON format shared across the platform.

    0 讨论(0)
提交回复
热议问题