facebook开发指南

综述

facebook开放平台是基于Oauth2.0协议工作的,本文将介绍下如何进行Facebook平台开发,将本人的经验分享出来,避免其他同学走坑。

正文

1.注册应用

首先,得注册一个应用,地址:https://developers.facebook.com/
在“我的应用”可以注册一个新应用(无需任何权限限制,只要一个facebook账号就行了,比twitter宽松很多)

facebook开发指南_第1张图片
我的应用

这里:比较重要的就是

  • 应用编号 appId
  • 应用密钥 appSecret
  • 产品:至少需要"facebook登陆"才能进行用户资源操作
    然后,以上都是正式发布后需要的信息。

2.应用设置

特别地,介绍一下,我们开发环境,经常需要使用的测试工具和信息。

  • 用户身份


    facebook开发指南_第2张图片
    用户身份

    可以添加开发者,测试者,还可以生成测试账号(某些操作必须要应用审核发布后才能使用,所以开发时候可以用自己账号或者测试账号来进行调试)

3.facebook文档和工具

  • 文档
    https://developers.facebook.com/docs/
    facebook开发指南_第3张图片
    facebook文档

    facebook文档大部分支持中文,还是比较好阅读的,比较常用也就是facebook login, group api, page api,点击可以自己查看详情

+工具
https://developers.facebook.com/tools/explorer/

facebook开发指南_第4张图片
图谱调试工具

图谱调试工具:进行facebook所有api进行访问,支持get,post,delete方法,因为facebook是利用oauth2.0协议进行资源访问和控制的,每次获取access_token是相当麻烦的过程的,这里用图谱工具可以直接获取access token,然后用access_token进行访问api,比如上图获取用户信息。

常用api

  • /me/accounts
    获取用户的主页信息(page)


    facebook开发指南_第5张图片
    用户主页信息
  • /me/groups
    获取用户的小组信息


    facebook开发指南_第6张图片
    用户小组信息

4.SDK: https://developers.facebook.com/docs/apis-and-sdks#third-party-sdks
对于facebook推荐的java sdk有

facebook开发指南_第7张图片
Java sdk

  • Spring Social:已经很久没维护了
  • BlackBerry:已经很久没维护了
  • Kinvey:貌似是个收费服务网站,没太明白
  • RestFB: 目前还在维护的开源facebook sdk

下面就来着重介绍下RestFB
地址:https://restfb.com/
restfb:RestFB is a simple and flexible Facebook Graph API client written in Java.
在restfb的文档中,都详细介绍了怎么使用

facebook开发指南_第8张图片
restfb文档

这里我列下关键的代码:
如何服务器不能直接访问外网,第一种:可以开启程序全局代理socket5代理(方法见https://www.jianshu.com/p/0a93d7ef35ad);第二种:下面的局部代理方式(只有使用restfb才代理,推荐这种方式)。

    /**
     * 根据accessToken生成FacebookClient,将该方法封装,方便其他方法使用,避免重复代
     * @param accessToken
     * @return
     */
    private FacebookClient getFacebookClient(String accessToken) {
        FacebookClient facebookClient = new DefaultFacebookClient(accessToken,
                this.getWebRequestor(), new DefaultJsonMapper(), fbVersion);
        return facebookClient;
    }
    /**
     *  设置facebook sdk restFB的代理, 供getFacebookClient使用
     * @return
     */
    private WebRequestor getWebRequestor() {

        return new DefaultWebRequestor(){
            // 重写 openConnection 方法,注入代理配置
            @Override
            protected HttpURLConnection openConnection(URL url) throws IOException {
                InetSocketAddress proxyLocation = new InetSocketAddress(proxyHost, proxyPort);
                Proxy proxy = new Proxy(Proxy.Type.HTTP, proxyLocation);
                return (HttpURLConnection)url.openConnection(proxy);
            }
        };
    }

github:https://github.com/HinsonHsu/restfb

你可能感兴趣的:(facebook开发指南)