96693


Tweepyで以下のコードを利用してTweetを収集しようと思いましたが、以下のエラーが出力されます。

エラー：

[code]

    400, '{
        "errors":[
            {"parameters":{
                "query":[
                    "\\"global leader\\" -is:retweets -is:replies -is:links lang:en"
                ]
            },
        "message":"There were errors processing your request: Reference to invalid operator \'is:retweets\'. Operator is not available in current product or product packaging.
    
[/code]

エラーだけ見ると、クエリー検索でis:retweet等が使えないためだと思いますが、is:retweet等はいずれも有料プランでなくても使えるものなので、なぜこのようなエラーが出力されたのかが分かりません。

Twitter APIを利用するための必要な手続きは以下サイトを参考に設定済みです。

<https://zero-cheese.com/8436/>

[code]

    def auth():
        return os.getenv('TOKEN')
    
    def create_headers(bearer_token):
        headers = {"Authorization": "Bearer {}".format(bearer_token)}
        return headers
    
    def create_url(keyword, max_results = 100):
        search_url = "https://api.twitter.com/2/tweets/search/recent" 
        query_params = {'query': keyword,
                        'max_results': max_results,
                        'expansions': 'author_id,in_reply_to_user_id,geo.place_id',
                        'tweet.fields': 'id,text,author_id,in_reply_to_user_id,geo,conversation_id,created_at,lang,public_metrics,referenced_tweets,reply_settings,source',
                        'user.fields': 'id,name,username,created_at,description,public_metrics,verified',
                        'place.fields': 'full_name,id,country,country_code,geo,name,place_type',
                        'next_token': {}}
        return (search_url, query_params)
    
    
    def connect_to_endpoint(url, headers, params, next_token = None):
        params['next_token'] = next_token  
        response = requests.request("GET", url, headers = headers, params = params)
        print("Endpoint Response Code: " + str(response.status_code))
        if response.status_code != 200:
            raise Exception(response.status_code, response.text)
        return response.json()
    
    #Inputs for the request
    bearer_token = auth()
    headers = create_headers(bearer_token)
    keyword = '"global leader" -is:retweets -is:replies -is:links lang:en'
    max_results=100
    
    url = create_url(keyword, max_results)
    json_response = connect_to_endpoint(url[0], headers, url[1])
    
[/code]


CC BY-SA 4.0
2023-11-06T14:44:08.457
96690
2023-11-06T16:41:12.240
2023-11-06T16:34:28.147
3060
57568
question
python twitter
Tweepy APIの問題


単純なスペルミスではないでしょうか？正しくは `is:retweet` で、末尾に **`s` が付かない**
単数形の表現になる気がします。(エラーの出ているコードでは `is:retweets` になっています)

参考:  
[【TwitterAPI v2】検索クエリ・オペレータ一覧 -
zenn.dev](https://zenn.dev/mamushi/articles/twitter_search_query)


CC BY-SA 4.0
2023-11-06T16:41:12.240
96693
2023-11-06T16:41:12.240
3060
96690
answer