[英]Python Request: Post Images on Facebook using Multipart/form-data
我正在使用facebook API在頁面上發布圖像,我可以使用以下方法從網絡發布圖像:
import requests
data = 'url=' + url + '&caption=' + caption + '&access_token=' + token
status = requests.post('https://graph.facebook.com/v2.7/PAGE_ID/photos',
data=data)
print status
但是,當我要發布本地圖像(使用multipart / form-data)時,出現錯誤: ValueError: Data must not be a string.
我正在使用此代碼:
data = 'caption=' + caption + '&access_token=' + token
files = {
'file': open(IMG_PATH, 'rb')
}
status = requests.post('https://graph.facebook.com/v2.7/PAGE_ID/photos',
data=data, files=files)
print status
我讀到( Python請求:在單個請求中發布JSON和文件 )可能無法同時發送數據和多部分編碼文件中的文件,所以我更新了代碼:
data = 'caption=' + caption + '&access_token=' + token
files = {
'data': data,
'file': open(IMG_PATH, 'rb')
}
status = requests.post('https://graph.facebook.com/v2.7/PAGE_ID/photos',
files=files)
print status
但這似乎不起作用,我收到與上述相同的錯誤。
你們知道為什么它不起作用,也許是解決此問題的一種方法。
將data
作為字典傳遞:
data = {
'caption', caption,
'access_token', token
}
files = {
'file': open(IMG_PATH, 'rb')
}
status = requests.post(
'https://graph.facebook.com/v2.7/PAGE_ID/photos',
data=data, files=files)
requests
無法從application/x-www-form-urlencoded
編碼字符串生成multipart/form-data
部分(以及您要上傳的文件)。
對POST數據使用字典還有一個額外的優勢,即requests
可以正確編碼值。 caption
尤其可能包含必須正確轉義的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.