In questi giorni sto usando le facebook graph API di Python per modificare/aggiornare il testo di uno specifico post creato in precedenza sulla mia pagina fb. Il semplice codice che permette di fare ciò è questo:
    import facebook
    page_token = '...'
    fb = facebook.GraphAPI(access_token = page_token, version="2.12")
    page_id = '...'
    post_id = '...'
    fb.put_object(parent_object = page_id + '_' + post_id,
                  connection_name = '',
                  message = 'new text')

Il passo successivo che sto cercando di compiere è aggiungere/modificare l'immagine del post (che ricordo essere un post già esistente, non devo creare un nuovo post allegando un'immagine (in quel caso basterebbe usare la funzione put_photo)) caricandone una che ho in locale nella stessa cartella dello script Python.
La documentazione linkata sopra è molto scarsa e non viene fatto riferimento a come poter fare questa cosa, sono quasi certo che vada usata sempre la funzione put_object ma con dei parametri diversi. Ho girato su molti siti ma senza trovare spiegazioni su come si possa fare questa cosa.
Prendendo spunto da codici letti qua e là ho provato
fb.put_object(parent_object=page_id+'_'+post_id, connection_name='', message='new text', source = open('out.png', 'rb'))

e
fb.put_object(parent_object=page_id+'_'+post_id, connection_name='', message='new text', object_attachment = open('out.png', 'rb'))

ma non funzionano (non danno errori ma l'immagine non viene aggiunta al post).
Consigli?

Concludo riportando i permessi dell'app che ho creato col mio account developer, dovrebbero essere tutti quelli necessari per portare a termine l'operazione
    pages_show_list
    pages_read_engagement
    pages_read_user_content
    pages_manage_posts
    pages_manage_engagement

p.s. prima di usare le graph API avevo provato Selenium ma non mi sono trovato bene: spesso si impallava ed è molto più macchinoso delle API