2014-12-17 5 views
5

Ich habe drei Bilder image1.jpg, image2.jpg, image3.jpg.I ich versuche, sie zu laden, wie ein einzelner post.Below mein Code:Wie lade ich mehrere Bilder mit dem FaceBook Python SDK hoch?

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!') 

Aber sie als separate Beiträge in separaten hochgeladen erhalten images.Wie lade ich mehrere Bilder in einem Post hoch?

Antwort

0

haben Sie versucht: put-wall-post? ..oder put-object

put-wall-post könnte sein, was Sie suchen:

Befestigung - Ein dict, die eine strukturierte Anlage zu der Nachricht fügt die Wand geschrieben werden. Wenn Sie eine URL freigeben, sollten Sie den Anhang-Parameter verwenden, damit im Beitrag eine Miniaturansicht angezeigt wird. Es sollte ein dict von der Form:

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

0

Versuchen Sie dies. Zuerst müssen Sie alle Fotos hochladen und die IDs behalten (imgs_id).

Dann machen Sie ein Diktat wie Args, und schließlich Call Request-Methode.

Es tut mir leid, wenn nicht die beste komprimierten Code ...

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') 
Verwandte Themen