通过fb的 graph api上传图片的方式有2种,一种是上传其他网站的图,参数中给定网址即可;另一种是上传电脑本地硬盘里的图,以下分别给示例:
-
上传网络图片,用curl命令:
curl -i -X POST
“https://graph.facebook.com/v13.0/me/photos?url=https://Fhelperbyte.com/assets/img/logo.png&access_token=你的page access token” 这段可以很容易改成python代码。 -
上传本地图片
def fb_post(): #向facebook 发帖,含图片和文字
#以下这段可将本地硬盘图片成功发送至facebook page,
pagetoken = '*************'
# 以下测试发个页面的帖子,并上传本地图片
url='https://graph.facebook.com/{pageid}/photos' #中间数字是page id
data = {'access_token':pagetoken} # 此处为page token
files = {'source': '本地图片文件'} # 此处写法是关键,之前屡次上传失败,都因为写法不对(有需要加vx sinodive)
res = requests.post(url=url,data=data,files=files) # 此句会上传图片到facebook,如成功返回值中包含2个值,一个id即图片的id, 另一个post_id,帖子的id
其实是个很简单的小功能,但是全网找不到一个有效样例,摸索了2天才试通。一直很讨厌用facebook,内容组织乱七八糟进去就爱迷路,graph api的文档也算是垃圾中的极品,杂乱无章还没示例。有空总结下facebook api中的掉坑大全。