如何在 python 中为 Twitter 的搜索 API 形成搜索查询?
How do I form a search query in python for Twitter's search API?
我通过了身份验证部分,但我不知道如何为搜索部分形成查询。
身份验证: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
我不太确定如何将 "example requests" 变成 python
中的响应查询
您需要使用返回给您的消费者密钥来进行进一步的请求。在文档中,您可以看到有一个 curl 请求,您可以在 header 中添加令牌。这就是我要做的:
对于请求,使用 headers 执行 GET 请求,在 header 中,您的授权密钥中填充了此类值。
'authorization: OAuth oauth_consumer_key="consumer-key-for-app"
并且作为有效负载传递给 params 的字典,其中包含您的搜索词 q 和 Twitter 提供的其他内容作为参数选项。
{'q': 'my search term', 'lang':'language'}
r = requests.get(url, headers=headers, params=payload)
r 将是响应,然后您可以将其转换为 json 以使用
进行进一步操作
r.json()
我通过了身份验证部分,但我不知道如何为搜索部分形成查询。
身份验证: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
我不太确定如何将 "example requests" 变成 python
中的响应查询您需要使用返回给您的消费者密钥来进行进一步的请求。在文档中,您可以看到有一个 curl 请求,您可以在 header 中添加令牌。这就是我要做的:
对于请求,使用 headers 执行 GET 请求,在 header 中,您的授权密钥中填充了此类值。
'authorization: OAuth oauth_consumer_key="consumer-key-for-app"
并且作为有效负载传递给 params 的字典,其中包含您的搜索词 q 和 Twitter 提供的其他内容作为参数选项。
{'q': 'my search term', 'lang':'language'}
r = requests.get(url, headers=headers, params=payload)
r 将是响应,然后您可以将其转换为 json 以使用
进行进一步操作r.json()