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:
codice:
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
codice:
fb.put_object(parent_object=page_id+'_'+post_id, connection_name='', message='new text', source = open('out.png', 'rb'))
codice:
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
codice:
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