接facebook的API本身没什么难度,甚至也不用知道背后的oauth流程,按照文档的步骤就好
主要是因为中间被url本身的id骗了几次,加上对粉专的一些资讯不熟悉要去哪里看,所以才想记录一下
本篇内容包含:
1.如何获取粉丝专页的发文权限
2.如何使用API进行发文
3.如何在发文底下留言
如何获取粉丝专页的发文权限
先进到meta for developers的页面中,并且创建应用
点击其他
点选企业商家
输入你想取的应用程式名称
建立后去图形测试工具
在画面的右边,先选取正确的meta应用程式,用户或粉丝专页选择用户权杖
,权限的部分也要注意
如果要发文跟发留言,至少要有:
pages_manage_posts 权限
pages_read_engagement 权限
pages_manage_engagement 权限
pages_read_user_content 权限

7.这时候取得的是短期权杖
!期限只有一小时,最终我们的目的是取的粉丝专页的长期权杖
区别与流程:
短期用户权杖(期限1小时)->长期用户权杖(期限60天)->粉丝专页长期权杖(永久)
用api取得用户长期权杖// GET方法https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token& client_id={{ 你的应用程式id }}& client_secret={{ 你的应用程式密码 }}& fb_exchange_token={{ 你刚刚获得的短期access_token }} // 大括号不要真的打下去XD 只是代表这边要放参数
应用程式的id以及密码:
{ "access_token": "你的长期用户access_token", "token_type": "bearer", "expires_in": 5179919 // 单位为秒,约60天}
拿这个access_token去拿粉丝专页的永久权杖// GET方法https://graph.facebook.com/{{ 粉丝专页的id }}? fields=access_token& access_token={{ 你的用户长期权杖 }}
粉丝专页的id:
{ "access_token": "", "id": ""}
发文
使用API发文// POST方法https://graph.facebook.com/{{ 粉专id }}/feed ?message={{ 你想发的内容 }} &access_token={{ 粉专access_token }}" // 发的内容不用特别用字串包起来也没关係
通常失败就是代表你没有权限或是你的access_token不是正确的,如果成功的话会获得{ "id": "{{ 文章id }}"}
留言
使用API发文// POST方法https://graph.facebook.com/{{ 刚刚拿到的文章id }}/comments ?message={{ 要留言的内容 }} &access_token={{ 粉专access_token }} // 发的内容不用特别用字串包起来也没关係
通常失败就是代表你没有权限或是你的access_token不是正确的,如果成功的话会获得{ "id": "{{ 留言id }}"}
当然其他像是发布图片、影片或是按照某个时间点发布也就是按照API的指示去发送请求,基本上都大同小异。只可惜发布贴文不能用API设定背景,或是知道怎么用API设定背景的也可以在下方留言指正我~
那要做到自动发文,可以自己写物件或是方法执行,不论是要用crontab还是screen加上python的schedule套件
因为这个方法不会太複杂,用docker应该不是很适合XD 除非能把image做得很小,但是我自己对dockerfile的理解不够深,做出来的image都很肥,所以小方法就不会使用他
参考:
获取权杖API: https://developers.facebook.com/docs/pages/access-tokens
粉专发布API: https://developers.facebook.com/docs/pages/publishing