2016-11-01 115 views
2

我想通過它的python包facebookapi使用Facebook的營銷API。Facebook的蟒蛇營銷API AttributeError

這裏的代碼片段:

from facebookads.adobjects.customaudience import CustomAudience 

audience = CustomAudience(parent_id='act_10336...') 
audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.custom 
audience[CustomAudience.Field.name] = 'My new CA' 
audience[CustomAudience.Field.description] = 'People who bought on my website' 

audience.remote_create() 

它是直接取自Facebook的例子給定here定製觀衆創作。

我把適當的AD_ACCOUNT_ID放在第二行。

我得到一個錯誤:

AttributeError: 'NoneType' object has no attribute 'call' 

經過一番調查,我發現這條線從api.py返回None,我認爲這是這個問題的心臟:

FacebookAdsApi.get_default_api() 

在實際上,我嘗試執行的任何api調用都返回了類似的錯誤。

有人知道這件事嗎?

回答

3

您沒有引導API? 試試這個:

from facebookads.api import FacebookAdsApi 
from facebookads import objects 

my_app_id = '<APP_ID>' 
my_app_secret = '<APP_SECRET>' 
my_access_token = '<ACCESS_TOKEN>' 
proxies = {'http': '<HTTP_PROXY>', 'https': '<HTTPS_PROXY>'} # add proxies if needed 
FacebookAdsApi.init(my_app_id, my_app_secret, my_access_token, proxies) 
+0

我們如何生成access_token? –

+0

「」message「的錯誤:」無效的OAuth訪問令牌。「」 –

+0

@MitulShah首先用'FB.login()'獲得一個短暫的令牌,然後通過GET請求一個長壽命的令牌/ OAuth的/的access_token?grant_type = fb_exchange_token&CLIENT_ID = {APP-ID}&client_secret = {應用祕密}&fb_exchange_token = {短暫的令牌}'。當令牌到期時重複該過程。 –