2014-10-09 65 views
0

我想要的圖像發佈到Facebook的廣告API,https://developers.facebook.com/docs/reference/ads-api/adimage,他們的例子是空響應體POST請求到Facebook廣告API

curl \ 
-F '[email protected]' \ 
-F 'access_token=<ACCESS_TOKEN>' \ 
"https://graph.facebook.com/act_<ACCOUNT_ID>/adimages" 

但是,當我這樣做的請求:

payload = {'access_token': ACCESS_TOKEN, 
      image_name: post_image} 

r = requests.post(post_url, data=payload, stream=True) 

我得到一個空的響應主體。我如何解決這個問題,以便我可以得到響應體?

+0

你有白名單的應用程序? – luschn 2014-10-09 20:21:58

+0

我這樣做,當我使用curl時,我得到了文檔中提到的響應。只有當我用請求使用python時,我纔會得到空的內容 – Hank 2014-10-09 20:23:23

回答

0

我們最近發佈了Facebook的Python廣告API SDK(不知道這是否在你的雷達)。

from facebookads.objects import AdImage 

image = AdImage(parent_id='act_<AD_ACCOUNT_ID>') 
image[AdImage.Field.filename] = './test.zip' 
image.remote_create(batch=True) 

# Output image hash. 
print image[AdImage.Field.hash] 

GitHub的README涵蓋與您的應用程序ID,訪問令牌等,這樣引導您的腳本 https://github.com/facebook/facebook-python-ads-sdk

0

當使用Python努力,你需要:但是你可以通過批量拉鍊使用下面的代碼創建首先在二進制模式下打開圖像,然後將其轉換爲文件鍵。應僅分別給予有效載荷access_token。由於呼叫無法上傳該圖像,您將得到空的回覆。

file_obj = {'filename': open(local_image_path, 'rb')} 
payload = {'access_token': ACCESS_TOKEN} 
response = requests.post(post_url, data=payload, files=file_obj) 

你會得到這樣的回答:

{ 
    "id" : 123456789 
} 

希望這有助於。