用于自动脚本的Facebook访问令牌(每次脚本运行时获取令牌)

时间:2015-05-13 20:41:46

标签: python facebook facebook-graph-api oauth-2.0 facebook-oauth

我尝试设置一个每天早上7点运行的脚本,并从Facebook获取我们组织的广告数据。我得到了实际的Python脚本完全正常工作: (我当然使用了我的实际应用ID,应用密码,帐户和用户访问令牌而非X,并将其存储在csv中,但没有复制该部分代码,因为它不是& #39; t相关)

from facebookads.objects import AdAccount
from facebookads.api import FacebookAdsApi
import pandas as pd

my_app_id = 'XXX'
my_app_secret = 'XXX'
my_access_token = 'XXX'
FacebookAdsApi.init(my_app_id, my_app_secret, my_access_token)

account = AdAccount('act_XXX')
params = {
    'data_columns':['adgroup_id','date_start','date_stop','campaign_name','reach', 'frequency', 'impressions', 'clicks', 'unique_clicks', 'ctr', 'unique_ctr', 'spend', 'cpm','cpp', 'cpc', 'actions'],
'date_preset': 'last_90_days',
    }

stats = account.get_report_stats(params=params);
print (stats)

问题是此令牌每60分钟到期一次。我需要一种方法,我不必每天修改这个程序,以便在Facebook上进行身份验证。我意识到上面的标记是USER标记。我已经尝试过App Token(这是" app_id | app_secret")我甚至得到了Python通过请求将它提供给我:

import requests
r = requests.get("https://graph.facebook.com/oauth/access_token?    client_id={{my_id}}&client_secret={{my_secret}}&grant_type=client_credentials")
#print r.headers
token = r.content
print (token)

但它不会将此作为实际令牌。当我手动输入USER令牌时,它只会向我提供广告数据。如果我正确了解情况,我需要

1)永久令牌(不要认为这存在)

或2)每次运行Python脚本时从Facebook API请求(用户?)令牌的方法。

这是关于访问令牌的Facebook页面(我从中获取了代码)https://developers.facebook.com/docs/facebook-login/access-tokens我知道有延长的60天令牌,但由于我们仍然需要每60天手动进入并更改一次。我们的想法是让脚本自动运行,而不必为每次运行重新编写脚本。

提前致谢。

0 个答案:

没有答案