工作环境为mac
目的:尝试使用facebook提供的api发送图片
facebook有个开发者网站https://developers.facebook.com
本人尝试过两种方式利用facebook提供的api发送图片:
1.通过facebook提供的图谱api探索工具
2.通过post方式发送
使用探索工具只实现了发送url图片,没有发送成功本地图片,通过post方式将url图片和本地图片都发送成功

一、利用图谱api探索工具发送图片(该方法怎么传本地图片还未知)
1.你得有个翻墙工具,登陆即可
2.打开图谱api探索工具,并登陆自己的facebook账号
1)点击获取口令,选取相应的用户权限,我选的权限如下图所示(如果只传图片可以不用选那么多,但是按我的选也没啥事),选取完成后在访问口令一栏自动添加好了访问口令

2)在访问口令下面有一栏,设置如下图所示(选择get就是利用api获取信息,选择post就是利用api发送信息,我们要发送则选择post,post后面的v2.10是api版本,目前最新版是v2.10,版本号后面接要发送内容的地址,/me facebook会自动解析成用户uid)

3)在post下面一栏有个add field,点击,出现连个文本框,一个是name,一个是value,name可以随便填写(因为我上传的是url图片,所以就写url),value写的是要上传的图片,这个可以百度图片搜一个。
4)点击提交,等待响应完成并返回响应如下图所示,如果没有报错说明上传成功,可以登陆自己的facebook查看上传图片

二、利用post方式发送图片(这种方式实现了传url图片和本地图片两种)
这种方式使用的是linux下的curl命令来post图片,而且这种方法得知道代理服务器的地址和端口
1.你得有个翻墙工具,登陆,然后查询服务器的地址和端口号,方法如下:
1)我用的某vpn通过shadowsocks登陆,登陆后点击shadowsocks,如下图所示,选择偏好设置

2)点击HTTP,查看HTTP代理监听地址和HTTP代理监听端口(我的是默认的,如图为127.0.0.1:1087)

2.利用linux的curl命令按照http的post方法发送图片

使用curl -v -L -x 127.0.0.1:1087 www.facebook.com查看是否翻墙成功,是否能访问facebook,其中-L表示使用地址重定向,如果不用的话,这条语句会出现302的错误,如果执行完该语句输出一堆数据没报错,说明能访问成功。

1)传url图片
下面代码,-v是打印信息,-x是使用代理服务器,-H是自定义头信息传递给服务器(facebook要求Content-Type:multipart/form-data数据形式发送图片),-d是HTTP POST方式传送数据,url=后面是接的要上传的图片的url,access_token=后面接的是访问口令(访问口令的生成方式可以利用图谱api探索工具生成,即同一中的访问口令生成步骤),最后的链接为上传的服务器地址

curl -v \-x 127.0.0.1:1087 \
 -H "Content-Type:multipart/form-data" \
 -d "url=https://f10.baidu.com/it/u=2020341049,3982319633&fm=72" \
 -d "caption=test%20photo%20upload" \
 -d "access_token=EAACEdEose0cBAJ23MJN2e6qakHgZBb6f7jS0yZCSVhQsc6qJeDK64N6axx9FD24rIiJoMZBVRcDuvVx2ZCchEychdMlZCYY4ML5ZBUO7igZCsuwZAKKP6ZCGpcb4lWl9hwO5SZCNtKA99BmglxCiAiVT8dd3Tsls7XNIsxHiS6ZBEZBIC0tgV5703v3Hp0Ko7XFUZBeFGEmUK1qmHFQZDZD" \
 "https://graph.facebook.com/v2.10/me/photos"

提示:使用curl -x时,若报错curl:(35)server aborted the ssl handshake错误,在.bash_profile文件中添加下面两行:

export http_proxy=http://<proxy_url>:<proxy_port>/
export https_proxy=https://<proxy_url>:<proxy_port>/

2)传本地图片
下面代码中-F是模拟http表单提交数据,同上传数据类型要是Content-Type:multipart/form-data,因为我想尝试传全景图则要设置allow_spherical_photo=1,filename=@后面接的是待上传的本地图片,最后的链接为上传的服务器地址

curl -v \-x 127.0.0.1:1087 \
 -H "Content-Type:multipart/form-data" \
 -F "allow_spherical_photo=1"
 -F "access_token=EAACEdEose0cBAJ23MJN2e6qakHgZBb6f7jS0yZCSVhQsc6qJeDK64N6axx9FD24rIiJoMZBVRcDuvVx2ZCchEychdMlZCYY4ML5ZBUO7igZCsuwZAKKP6ZCGpcb4lWl9hwO5SZCNtKA99BmglxCiAiVT8dd3Tsls7XNIsxHiS6ZBEZBIC0tgV5703v3Hp0Ko7XFUZBeFGEmUK1qmHFQZDZD" \
 -F "filename=@/Users/liuheng/Desktop/facebook/2_1_make.jpg"  "https://graph.facebook.com/v2.10/me/photos"

还有一点要提醒的就行,如果要抓包,利用shadowsocks和charles环境的话,可以看文章 mac+charles抓国外的https协议,然后二步骤中的代理服务器地址和端口要改成charles的,我的charles地址是127.0.0.1端口是8888,那么我的写法就是

curl -v \-x 127.0.0.1:8888 \
 -H "Content-Type:multipart/form-data" \
 -F "allow_spherical_photo=1"
 -F "access_token=EAACEdEose0cBAJ23MJN2e6qakHgZBb6f7jS0yZCSVhQsc6qJeDK64N6axx9FD24rIiJoMZBVRcDuvVx2ZCchEychdMlZCYY4ML5ZBUO7igZCsuwZAKKP6ZCGpcb4lWl9hwO5SZCNtKA99BmglxCiAiVT8dd3Tsls7XNIsxHiS6ZBEZBIC0tgV5703v3Hp0Ko7XFUZBeFGEmUK1qmHFQZDZD" \
 -F "filename=@/Users/liuheng/Desktop/facebook/2_1_make.jpg"  "https://graph.facebook.com/v2.10/me/photos"

研究的就这么多,有什么要改进的,或者有什么新的方式可以留言讨论,下面是一些相关文档
图谱api的使用可以看图谱api文档(https://developers.facebook.com/docs/graph-api)
上传图片方式可以参考官方文档:
(1)https://developers.facebook.com/docs/graph-api/reference/user/photos/#publish
(2)https://developers.facebook.com/docs/graph-api/photo-uploads

利用facebook graph api发送图片相关推荐

  1. Facebook Graph API(2)--读取数据之picture

    Picture(图片) 在Graph API中提到图片不是照片的.此处的picture是指用户的头像,组,事件或应用和相册的图片.所以使用avatar也不是很好,毕竟不仅仅是用户头像. 1.概览 可以 ...

  2. Facebook数据被滥用?8个视频案例教你用好Facebook Graph API

    大数据文摘作品 编译:Aileen 过去的一个周末,社交网络Facebook因为用户数据被第三方API滥用帮助美国大选的事情上了热搜.直到现在,Facebook CEO小扎也没有发出任何官方回应,以及 ...

  3. 让图片说出声音来(利用讯飞API实现图片转文字和文字转语音)

    k思路:调用讯飞的图片识别和语音输出的API实现图片转文字和语音 **APPID,APIKey,APISecret自己在讯飞网站注册即可**,免费使用的,填在img_audio.php文件最后对应的位 ...

  4. 融云发送图片消息_融云IM SDK集成,Server API 发送图片消息时,缩略图生成逻辑说...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 大致压缩过程 原图宽或高只要有一边大于 240 则执行压缩处理 根据缩率图最大尺寸 240.最小尺寸 100 的要求加载图片文件(适度同比缩放原图) 将步 ...

  5. 利用TcpClient TcpListener 实现发送图片

    点击此处下载源代码 客户端:实现向服务器发送文件 using System; using System.Collections.Generic; using System.Text; using Sy ...

  6. c#调用企业微信服务端API发送消息和图片

    1.首先获得企业微信的企业ID 2.获得企业微信里面的建立的小程序的APPID和Secret 以上不会的自行百度. 3.建立共用类QYWeixinHelper public class QYWeixi ...

  7. [python]利用随机api二次元图片

    [python]利用随机api二次元图片 文章目录 [python]利用随机api二次元图片 爬取准备 观察网址 补充: 请求头 程序编写 小福利 爬取准备 开发环境:chrome .vscode 所 ...

  8. https open api_钉钉API发送消息

    前言 Orchestrator有Call外部REST API/OPEN API的功能,利用钉钉开放的API,可以实现JDE内容转化成消息进行发送.此文档没有实现,只是整理如何Call API,这样在O ...

  9. Android向服务器发送图片(一)

    Android向服务器发送图片(一) 作为一个Android菜鸟,花了好久时间才搞定的发送图片功能,特在此写下,希望对后者有帮助.先说说我的思路:在Android通过相册选择图片,然后利用Base64 ...

最新文章

  1. python调用spark和调用hive_Spark(Hive) SQL数据类型使用详解(Python)
  2. python进阶:闭包、map/reduce/filter函数、lambda函数、装饰器
  3. 英文名字大全(男篇)
  4. 搜索计算机硬盘的索引恢复,可以做到秒搜的神器everything,你可知对硬盘到底有多大伤害...
  5. MySQL操作之JSON数据类型操作详解
  6. CSS3实现button:hover时background-color从左慢慢移动到右边
  7. 多进程,守护进程,锁
  8. Perl命令行常见用法及技巧
  9. 网站功能小Demo——学习MD5加密的一点心得
  10. 体重 年龄 性别 身高 预测鞋码_计算体重指数时,需要以下()数据。A.性别B.年龄C.身高D.体重...
  11. 踩过的坑 vertical-alignline-height
  12. 免费CSDN积分获取
  13. android按钮延迟显示出来,android Toast显示延迟的优化方案
  14. 2016推免面试经历纪实——四川大学计算机学院
  15. 名人(国家)·经典语录——向 先 辈 低 头, 向 文 明 低 头
  16. java基础“吃货联盟”(纯代码)
  17. 2020厦门大学计算机系学硕,2020考研厦门大学推荐:热门专业及学科设置
  18. Android4: Write Storage权限问题
  19. 2天,我把MySQL索引、事务、分库分表、锁、性能优化撸完了!
  20. 1062lcd在dxp哪个库_Protel DXP 自带常用元件库路径

热门文章

  1. 获取淘宝客推广位id(adzone_id)
  2. Python如何下载网页上的视频
  3. 思博伦Avalanche中的Load类型定义_双极未来
  4. HP收购3Com在2009年全球最佳品牌100强中,惠普排名11位,思科14位
  5. Vijos P1836 HYS与七夕节大作战
  6. JVM(周志明著深入了解JVM书归纳,新写一点就重新传一遍)
  7. [AGC001E]BBQ Hard
  8. Miscellaneous
  9. 安全修复之Web——Spring Framework 远程代码执行漏洞
  10. 如何做好网站优化推广