Как мне сформировать поисковый запрос в python для поискового API Twitter? - PullRequest
0 голосов
/ 05 марта 2020

Я прошел часть аутентификации, но не знаю, как сформировать запрос для части поиска.

Аутентификация: https://developer.twitter.com/en/docs/basics/authentication/oauth-2-0/bearer-tokens

import base64
import os
import requests
import urllib.parse

CONSUMER_KEY = os.environ.get("CONSUMER_KEY")
CONSUMER_SECRET = os.environ.get("CONSUMER_SECRET")
OAUTH2_ENDPOINT = "https://api.twitter.com/oauth2/token"

def get_bearer_token(consumer_key, consumer_secret):
    consumer_key = urllib.parse.quote(consumer_key)
    consumer_secret = urllib.parse.quote(consumer_secret)
    bearer_token = consumer_key + ":" + consumer_secret
    base64_encoded_bearer_token = base64.b64encode(bearer_token.encode('utf-8'))
    headers = {
        "Authorization": "Basic " + base64_encoded_bearer_token.decode('utf-8') + "",
        "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
        "Content-Length": "29"
    }
    data = {
        "grant_type": "client_credentials"
    }
    response = requests.post(OAUTH2_ENDPOINT, headers=headers, data=data)
    to_json = response.json()
    access_token = to_json["access_token"]

if __name__ == "__main__":
    get_bearer_token(CONSUMER_KEY, CONSUMER_SECRET)

API поиска: https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets

Я не совсем уверен, как превратить эти "примеры запросов" в ответ на запрос в python

1 Ответ

1 голос
/ 05 марта 2020

Вам необходимо использовать ключ потребителя, который возвращается вам для дальнейшего запроса. В документации вы можете видеть, что есть запрос curl, в который вы добавляете в заголовок токен. Вот что я хотел бы сделать:

С запросами сделать GET-запрос с заголовками, где в заголовке у вас есть ключ авторизации, заполненный этим значением.

'authorization: OAuth oauth_consumer_key = "consumer-key-for-app"

И как полезная нагрузка для передачи в словаре params sa с вашим поисковым термином q и другими вещами, которые Twitter предоставляет в качестве параметров.

{'q': 'мой поисковый запрос', 'lang': 'language'}

r = requests.get(url, headers=headers, params=payload)

r будет ответом, который затем вы можете превратить в json для дальнейших манипуляций с

r.json()
...