我试图在Python中访问Facebook Marketing Api,但我遇到了访问令牌的一些问题。 我运行以下代码:
def get_app_access_token(app_id, app_secret):
args = {'grant_type': 'client_credentials',
'client_id': app_id,
'client_secret': app_secret}
f = urllib2.urlopen("https://graph.facebook.com/oauth/access_token?" +
urllib.urlencode(args))
resp = json.loads(f.read())
### resp gives me {"access_token":"xxxxxx|yyyyyy", "token_type":"bearer"}
### so I extract yyyyyy as my access_token
result = resp["access_token"].split('|')[1]
access_token = get_app_access_token(APP_ID, SECRET_KEY)
api = FacebookAdsApi.init(APP_ID, SECRET_KEY, access_token)
account = AdAccount(AD_ACCOUNT)
adsets = account.get_ad_sets(fields=[AdSet.Field.name])
我收到错误"无效的OAuth访问令牌"在最后一行。
你知道我做错了吗?
谢谢!
答案 0 :(得分:0)
我认为将result
从result = resp["access_token"].split('|')[1]
更改为result = resp["access_token"]
Python API可以使用"xxxxxx|yyyyyy"
的格式,如果您将其提供给FacebookAdsApi
,但是除非在Facebook开发人员设置中为您获得的令牌设置正确,我不确定您是否可以获得适当的访问权
使用上面我可以访问广告帐户。但是,我对客户端令牌的权限不允许访问广告系列,而我使用的是折旧API。