Код: Выделить всё
{“client_id”:“…”,“detail”:“When authenticating requests to the Twitter API v2 endpoints, you must use keys and tokens from a Twitter developer App that is attached to a Project. You can create a project via the developer portal.”,“registration_url”:“…”,“title”:“Client Forbidden”,“required_enrollment”:“Appropriate Level of API Access”,“reason”:“client-not-enrolled”,“type”:“…”}
Это не отдельное приложение, а часть проекта. Я просто хочу использовать отфильтрованные потоки, чтобы автоматически получать каждый новый твит одного конкретного пользователя Твиттера.
вот часть моего кода:
Код: Выделить всё
def bearer_oauth(r):
"""
Methode für die Bearer Token Authentifizierung.
"""
r.headers["Authorization"] = f"Bearer {BEARER_TOKEN}"
r.headers["User-Agent"] = "v2FilteredStreamPython"
return r
def set_rules(headers, chat_id):
rules = [{"value": f"from:{TWITTER_USERNAME}", "tag": f"Twitter stream for {TWITTER_USERNAME}"}]
payload = {"add": rules}
response = requests.post("https://api.twitter.com/2/tweets/search/stream/rules", auth=bearer_oauth, json=payload)
if response.status_code != 201:
message = f"Fehler beim Setzen der Regeln: {response.text}"
updater.bot.send_message(chat_id=chat_id, text=message)
return False
return True
def start_twitter_stream(chat_id):
if not set_rules(bearer_oauth, chat_id):
return
stream_url = "https://api.twitter.com/2/tweets/search/stream"
response = requests.get(stream_url, auth=bearer_oauth, stream=True)
for line in response.iter_lines():
if line:
tweet = json.loads(line)
text = tweet.get('data', {}).get('text', '')
message = f"{TWITTER_USERNAME} posted a new Tweet! Here is the Tweet:\n{text}"
updater.bot.send_message(chat_id=chat_id, text=message)
https://github.com/twitterdev/Twitter-API-v2-sample -code/blob/main/Filtered-Stream/filtered_stream.py
Подробнее здесь: https://stackoverflow.com/questions/779 ... of-project