"无效的OAuth访问令牌"在Python中的Marketing API上

时间:2018-01-08 12:23:41

标签: python oauth access-token facebook-ads-api facebook-marketing-api

我试图在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访问令牌"在最后一行。

你知道我做错了吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为将resultresult = resp["access_token"].split('|')[1]更改为result = resp["access_token"]

Python API可以使用"xxxxxx|yyyyyy"的格式,如果您将其提供给FacebookAdsApi,但是除非在Facebook开发人员设置中为您获得的令牌设置正确,我不确定您是否可以获得适当的访问权

使用上面我可以访问广告帐户。但是,我对客户端令牌的权限不允许访问广告系列,而我使用的是折旧API。