每天登陆Google Adsense查看收益有些麻烦,而平常用TG又比较多,所以尝试将每日收益推送到TG。效果如图。可以使用免费VPS Linuxone进行托管(参考本文)。
开启API并设置凭据
转到GCP创建项目,并新建API。
在API管理界面,创建凭据:
类型如下:
会提示要设置同意屏幕,这里随便设置即可。
应用类型选桌面:
创建完成后,选择下载:
将名称改为client_secrets.json
留存。
配置python Client
Google Adsense API Example:GitHub项目地址
简要总结如下;
通过pip安装依赖:
pip install google-api-python-client
pip install google_auth_oauthlib
将项目中的adsense_util.py
、get_all_accounts.py
文件,以及刚才保存的client_secrets.json
复制到工作目录下。(我这里重命名了一下)。
运行python get_all_accounts.py
(或者python test.py
)
按提示打开网页、复制authcode即可。
获取报告数据
复制项目中generate_report.py
文件到工作目录运行。即可生成报告(默认的生成时间是2021年3月的报告),如果你那段时间有报告则会显示。若无则为空白,更改下图中起止时间即可。
但是现在还只是命令行输出,并且格式很丑,我们需要通过TG通知
配置TG通知
新建一个Bot,获取UserID和BotToken(参见此文章),向Bot发送start命令激活。
由于我们只需要一个简单的发送信息的命令,所以并不需要引入复杂的telegrambot库。只需用requests
库即可。这里我提供修改后的文件。
通过此链接下载修改后的generate_report.py
文件。在第69、70行添加你的UserID和BotToken,保存。
配置cron job定时任务
添加定时任务,可能会要选择编辑器,直接默认即可。
crontab -e
添加以下命令,转到项目目录,运行脚本。
0 0 6/24 1/1 * ? cd /home/linux1 ; python3 generate_report.py
重启cron
service cron restart
注意:不同用户的cronjob不同。在Linuxone下的,直接使用linux1用户无法运行cron restart命令(需要输入密码)。故推荐直接使用root用户编辑和运行。
已知出现的错误
网页授权错误
错误 400: redirect_uri_mismatch
将应用类型选成了web。改成桌面应用。
pip错误
ValueError: check_hostname requires server_hostname
开了代理,把代理关掉。
https://stackoverflow.com/questions/67297278/valueerror-check-hostname-requires-server-hostname
SSL错误
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:997)
网络不行,用国外的服务器就好了。
Windows Wget
wget 不保存文件
写全:
wget -Uri "https://raw.githubusercontent.com/googleads/googleads-adsense-examples/master/v2/python/adsense_util.py" -OutFil "adsense_util.py"
https://blog.csdn.net/chongminglun/article/details/102306762
python int 和 str
添加str(intvalue)
http://c.biancheng.net/view/4237.html
参考:
- https://developers.google.com/identity/protocols/oauth2?hl=zh-TW
- https://developers.google.com/adsense/management/reference/rest/v2/accounts.reports/generate
- https://github.com/googleads/googleads-adsense-examples/tree/master/v2/python
- https://blog.jialezi.net/?post=179
- https://segmentfault.com/a/1190000016897341