2014-12-17 1 views
5

ho tre immagini image1.jpg, image2.jpg, image3.jpg.I sto cercando di caricare loro come un unico post.Below è il mio codice:Come caricare più immagini usando FaceBook Python SDK?

import facebook 
graph = facebook.GraphAPI(oauth_access_token) 
profile = graph.get_object("me") 
friends = graph.get_connections("me", "friends") 
file1 = open("image1","rb") 
file2 = open('image2', 'rb') 
graph.put_photo(file1, 'Look at this cool photo!') 
graph.put_photo(file2, 'Look at this cool photo!') 

ma ottengono caricati come i messaggi in ogni singolo Stato images.Come faccio a caricare più immagini in un singolo post?

risposta

0

hai provato: put-wall-post? ..o put-object

put-wall-post potrebbe essere quello che stai cercando:

attaccamento - Un dict che aggiunge un allegato strutturato per il messaggio che viene inviato al muro. Se si condivide un URL, si vorrà utilizzare il parametro allegato in modo che nel post venga visualizzata un'anteprima in miniatura. Dovrebbe essere un dict della forma:

Fonte: http://facebook-sdk.readthedocs.io/en/latest/api.html#api-reference

0

Prova questa. Innanzitutto, devi caricare tutte le foto e conservare l'id (imgs_id).

Quindi, creare un dict come args e infine chiamare il metodo di richiesta.

Mi dispiace se non il migliore codice compresso ...

imgs_id = [] 
    for img in img_list: 
     photo = open(img, "rb") 
     imgs_id.append(api.put_photo(photo, album_id='me/photos',published=False)['id']) 
     photo.close() 

    args=dict() 
    args["message"]="Put your message here" 
    for img_id in imgs_id: 
     key="attached_media["+str(imgs_id.index(img_id))+"]" 
     args[key]="{'media_fbid': '"+img_id+"'}" 

    api.request(path='/me/feed', args=None, post_args=args, method='POST')