es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tweepy [ API de Twitter v2 ] incapaz de subir foto/medios.

“`import tweepy

<p>ACCESS_KEY = 'XXXXXXXXXXXXXXXXXX'
ACCESS_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'</p>

<p>api = tweepy.Client(bearer_token='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
access_token=ACCESS_KEY,
access_token_secret=ACCESS_SECRET,
consumer_key=CONSUMER_KEY,
consumer_secret=CONSUMER_SECRET)</p>

<p>api.media_upload(file.jpg)
“`
No puedo subir fotos ni obtener media_ids

No tengo acceso a la API de Twitter V1

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el código proporcionado está utilizando la biblioteca Tweepy con Twitter API V2, como lo indica el uso del método tweepy.Client(bearer_token=...).

    Sin embargo, el método api.media_upload(file.jpg) parece estar utilizando el antiguo método media_upload de Tweepy con Twitter API V1, que ya no se admite.

    Para cargar medios con Twitter API V2 utilizando Tweepy, puede usar el punto final media/upload de la API de Twitter v2. Consulte la documentación de Tweepy para obtener más información y ejemplos (https://docs.tweepy.org/en/latest/api.html#tweepy-binder).

    Código de ejemplo para cargar un archivo de imagen usando Twitter API V2 con Tweepy:

    import os
    import tweepy
    
    ACCESS_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    ACCESS_TOKEN_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    CONSUMER_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXX'
    CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    
    # Autenticar en Twitter API v2
    auth = tweepy.OAuth1UserHandler(
        consumer_key=CONSUMER_KEY,
        consumer_secret=CONSUMER_SECRET,
        access_token=ACCESS_TOKEN,
        access_token_secret=ACCESS_TOKEN_SECRET
    )
    api = tweepy.Client(auth=auth)
    
    # Carga de medios
    media_filename = "file.jpg"  # Reemplazar con su propio nombre de archivo
    media_type = "image/jpeg"  # Reemplazar con su propio tipo de medio
    media_category = "tweet_image"  # Opcional: reemplazar con su propia categoría
    try:
        response = api.media_upload(media_filename, media_type=media_type, media_category=media_category)
        media_id = response["media_id"]
        print(f"ID del medio: {media_id}")
    except tweepy.TweepError as e:
        print(f"Error al cargar el medio: {e}")
    

Comments are closed.