一、背景
公司每年在Facebook和Google上投放了大量的广告,我总不能让老板登录Facebook广告投放平台上去看广告效果,其实老板只关注每天花了多少钱引来了多少客户,每个客户平均花费多少钱,其它的他才不关心,有Facebook开放平台我们就可以通过API直接获取广告效果的数据,然后短信发给老板,下面讲一下用Python requests库简单快速实现该功能。
二、Facebook开放平台注册应用并获取access_token
1、用个人Facebook账号注册开放平台。
2、创建一个应用,应用可以不上架,得到应用编号和应用密钥。
3、在广告平台绑定应用账号,2年前做的,这个已经记不太清了,反正要么就是在开放平台,要么就是在广告平台,要将两者关联起来。
4、申请API权限
5、获取access_token
access_token:access_token是Oauth2.0 协议中客户端调用服务端API时需要带上的令牌,访问很多大公司的开放 API 的时候都需要这玩意,它表示哪个用户 在什么时候授权给哪个app 去做什么事情。
5.1 根据应用编号和密码获取1个小时的code
https://developers.facebook.com/tools/explorer/
5.2 在访问口令调试器
https://developers.facebook.com/tools/debug/accesstoken/
通过第一步获取的CODE换60天的access_token,要换取永久的token尝试过几次都没有成功,后来就不管了,反正每隔两个月换一次access_token就好了 :)。
三、使用Python requests调用接口
1、拼接获取广告数据请求的URL,见下图
https://graph.facebook.com/v10.0/act_389891661746353/
insights?&date_preset=yesterday
&fields=spend,actions
&access_token=EAAESB5yMxukBANYil3j2KUqPCCvYomQMlCXuB5ejYp87ihKQ7hS71d0DhclUh1tWUy71wphruibwJO02VXDxI78SUwKfr2YIfoq63YlBPJmYR7xUD5fmq2DrYZAlu8ZCUNzegwpzHmAUYfu938Qp1TrnKlnkPHhQcuty8n30041PaMMMSpwIrOEeyvYVISfSkP7VPa6gZDZD
2、使用requests库调用开放平台接口
Python有内置的urllib模块可用于访问网络资源,但该模块使用起来比较麻烦,更好的方法是使用第三方requests库.一般爬取数据都可以用这个,如果是异步渲染的数据,那就要考虑用无核浏览器加载渲染后再爬数据。
# requests库使用相当简单
pip install requests
import requests
r = requests.get('https://www.baidu.com/')
r.status_code
r.text
# 另外可以获取json数据,发送post请求
# 发送cookie,获取headers等等。很简单,很强大。
3、解析返回数据,组装成短信内容,通过requests调用短信网关发送短信。
下图是接口调用返回的广告花费和获取的客户数