国内如何访问facebook graph

一、简介
最近有一个需求,需要对接facebook graph api接口,获取facebook广告账号余额。众所周知,国内是无法直接访问facebook,我找硬件部的同事安装Clash for Windows,瞬间起飞,解决传说中的翻墙问题。
接下来就是查找api,创建token,通过postman调用facebook接口,浏览器也可直接访问facebook的get接口,一切看起来是如何的顺序,没想到只是恶梦的开始,当我用程序对接调用facebook的接口时,意外来了,响应报文返回的是NULL。
刚开始以为是自己的姿势不对,facebook上下载官方SDK后,依然返回NULL。此该我才醒悟,clash不支持idea软件。我在cdm中ping了下facebook地址,果然不通。找到原因后,就开始我的个人骚操作了。

二、实现方案,部署代码服务器
阿里云够买了一台2核4G的香港服务器,安装nginx,直接反向代理到facebook地址,经过一天调试,终于搞定了,当然其中有一些细节需要注意。

1、配置反向代理

location / {
            proxy_pass https://graph.facebook.com/;
            proxy_set_header Host graph.facebook.com;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme; 
        }

2、请求响应大小限制配置

server {
        listen       80;
        server_name  localhost;
        proxy_buffer_size 10M;
        proxy_buffers 100 10M;

3、get请求大小限制配置

client_header_buffer_size 1000k;
large_client_header_buffers 40 160k;

四、测试
关闭clash,用香港代理服务器直接访问facebook即可

http://代理IP/v20.0/me/adaccounts

响应结果:

{
   "error": {
      "message": "An active access token must be used to query information about the current user.",
      "type": "OAuthException",
      "code": 2500,
      "fbtrace_id": "ALMCr8C70GTEvO7KGiZ2PEo"
   }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容