Facebook api接口

Facebook api接口

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。


Facebook官方文档学习 - 调用接口篇

其实这篇最爽了,可以真正的调用接口取用户数据了。先大致了解下它的官方文

档,有接口使用介绍篇,就是一个summary,网址如下:

http://developers.facebook.com/

一、点击docs这个上面选项卡
1.左侧是菜单导航,我建议重点看core concepts这个下的Open Graph,这个就

是Facebook关于接口的介绍,非常重要,一定仔细看几遍,每看一遍就会发现更

多的细节。

2.Dialogs:这个也要看看,里面介绍的是关于授权的dialog,不论是手机还是

网页

3.Social Plugins:这个有很多官方提供的组件,比如:like按钮,可以放到你

自己网站上。

4.在Advanced Topics(http://developers.facebook.com/docs/advancedtopics/)

这个下面有很多高级API,比如:
1)Ads API:广告API,你可以在自己的应用中添加广告
2)Payments:支付API,你可以做一些收费功能
3)Chat API:你可以利用这个API做一些聊天功能
4)Internationalization:关于国际化的API,我觉得这个API,网页版的应用

应该会用到,如果你的应用想要国际化的话。

5.API Reference(http://developers.facebook.com/docs/reference/apis/)
1)Graph API: 我翻译为图谱API,因为Facebook的理念就是一个社交图谱,所以

他们废弃了Rest api后就改为了图谱API,这个名字听起来开始很别扭,慢慢的

会觉得确实很棒,一种理念,确实很棒。
2)FQL: 这个东西很是牛逼的,我没细看过这个API,但是我简单的看,认为这

个东西支持你的程序自己写SQL语句去直接调用Facebook的数据库。是不是很牛

逼?真的很牛。
3)Legacy REST API:废弃的REST 风格的API。现在大多数公司写的后台服务接

口都是REST 风格的。

6.SDKS(http://developers.facebook.com/docs/sdks/)

顾名思义,这是官方SDK的页面,目前支持下面几种SDK,我不知道为什么不出java的sdk,不解。他的SDK都是在GitHub上开源的,我就改过一些它的源码以便更好的使用在我们的项目中。它的源码确实有必要读读,遇到问题很快就能知道出在哪了。

Facebook SDK for JavaScript

Facebook SDK for PHP

Facebook SDK for iOS

Facebook SDK for Android

在这里整理下。

SDK Reference  - SDK for PHP

安装和初始化:

先下载 API 接口文件,地址在: github

require_once("facebook.php");

  $config = array();
  $config[‘appId’] = 'YOUR_APP_ID';
  $config[‘secret’] = 'YOUR_APP_SECRET';
  $config[‘fileUpload’] = false; // optional

  $facebook = new Facebook($config);

认证和授权:

在服务器端可以使用SDK的方法取得FB的认证和授权,SDK提供下面几个方法:

Facebook::getUser()           // 获取登录FB用户的id
Facebook::getLoginUrl()     // 大概是用户第三方登录的接口吧
Facebook::getLogoutUrl()   // 大概是用户第三方登录注销的接口

Facebook Object 介绍: 共提供 14 个方法。 如下 : 1个 api, 8个 get 方法, 4个 set 方法, 1 个 上传的支持判断

Facebook::api(/* polymorphic */)

这是个强大的方法,可以调用 Graph API method, an FQL query, or a (DEPRECATED) REST API method  等。其中 Graph API 和 FQL 用的比较多。

具体例子看文档 : api

Facebook::getAccessToken()  获取访问令牌

// Get the current access token
$access_token = $facebook->getAccessToken();

Facebook::setAccessToken($access_token) 设置访问令牌

// Set a new access token, by first getting it via means other than the SDK
$facebook->setAccessToken($new_access_token);

Facebook::getAppId() 获取APP的id

// Get the current app id
$appId = $facebook->getAppId();

Facebook::getApiSecret() 获取APP的密匙

// Get current App secret
$secret = $facebook->getApiSecret();

Facebook::setAppId($app_id)  设置APP的id

// Set a new app id to use
$facebook->setAppId(“APP_ID”); 

// If you do the above, also set a new app secret
$facebook->setApiSecret(“APP_SECRET”); 

Facebook::setApiSecret($app_secret) 设置APP的密匙

// Set a new app secret
$facebook->setApiSecret(“APP_SECRET”);

// If you do above, also set the app id
$facebook->setAppId("APP_ID");

Facebook::getUser() 获取用户的ID

$uid = $facebook->getUser();

Facebook::getLoginStatusUrl( $params=array() )    用法不是很了解,还是见 文档 

Facebook::getLoginUrl( $params=array() )   用法不是很了解,见 文档

Facebook::getLogoutUrl( $params=array() )    用法不甚了解, 见 文档

Facebook::getSignedRequest() 用法不甚了解, 见 文档

Facebook::setFileUploadSupport($fileUploadSupport)  设置用户上传的支持, 使用见 文档

// Upload a photo to a user’s profile
// Your app needs photo_upload permission for this to work
$facebook->setFileUploadSupport(true);

$img = '/tmp/mypic.png';

$photo = $facebook->api(‘/me/photos’, ‘POST’,
                        array( ‘source’ => ‘@’ . $img,
                               ‘message’ => ‘Photo uploaded via the PHP SDK!’
                       ));

Facebook::useFileUploadSupport() 获取是否支持用户上传

//Get the current support status
$uploadSupported = $facebook->useFileUploadSupport();