searchtweets APIを使用して履歴データを取得しようとしていますが、Twitter 422 エラーが発生し続けます。奇妙なことに、このコードの前に、完全に機能する以前のコードがありました。しかし、この後、古いコードも機能しません
ドキュメントに従い、完全なアーカイブ アクセス権があることを再確認し、トークンとアクセス キーを再生成しました。
これは私のpythonコードです:
import json
import csv
from searchtweets import collect_results, load_credentials, gen_rule_payload
enterprise_search_args = load_credentials("twitter_keys.yaml", yaml_key = "search_tweets_api", env_overwrite = False)
from_date = "2016-06-01"
to_date = "2016-06-23"
with open('map_data/london_borough.csv', 'r', newline = "") as csvFile:
boroughs = list(csv.reader(csvFile, delimiter = ','))
for num, borough in enumerate(boroughs):
if num:
name = boroughs[0]
box_coord = borough[5]
if box_coord:
box_coord = '['+box_coord.replace(',',' ')+']'
print(box_coord)
rule = gen_rule_payload("brexit", results_per_call = 100, from_date = from_date, to_date = to_date)
rule = json.loads(rule)
rule['bounding_box'] = box_coord
rule = json.dumps(rule)
print(rule)
tweets = collect_results(rule, max_results = 500, result_stream_args = enterprise_search_args)
with open('%s.csv'%(name), 'w', newline = "") as writeFile:
for tweet in tweets:
writeFile.write('%s, %s, %s\n'%(tweet.name, tweet.created_at_string, tweet.all_text))
そして私のyamlファイル:
search_tweets_api:
account_type: premium
endpoint: https://api.twitter.com/1.1/tweets/search/fullarchive/StreamingTweets.json
consumer_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
consumer_secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
上記のコードを実行すると、コンソールに次のように表示されます。
Grabbing bearer token from OAUTH
[-0.105400 51.507354 -0.074673 51.521028]
{"query": "brexit", "maxResults": 100, "toDate": "201606230000", "fromDate": "201606010000", "bounding_box": "[-0.105400 51.507354 -0.074673 51.521028]"}
retrying request; current status code: 422
retrying request; current status code: 422
コンピューターの時計は UTC 協定世界時に設定されています。ベアラー トークンを 4 倍にチェックし、数回再生成しました。アプリケーション アクセスは、ダイレクト メッセージの読み取り、書き込み、およびアクセスに設定されていますが、これを解決する方法がわかりません。
誰かがこれに対する解決策を知っていますか、それとも私が間違っている可能性がありますか? どんな助けでも大歓迎です!