版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Facebook官方文档学习 - 调用接口篇
其实这篇最爽了,可以真正的调用接口取用户数据了。先大致了解下它的官方文
档,有接口使用介绍篇,就是一个summary,网址如下:
//developers.facebook.com/
一、点击docs这个上面选项卡
1.左侧是菜单导航,我建议重点看core concepts这个下的Open Graph,这个就
是Facebook关于接口的介绍,非常重要,一定仔细看几遍,每看一遍就会发现更
多的细节。
2.Dialogs:这个也要看看,里面介绍的是关于授权的dialog,不论是手机还是
网页
3.Social Plugins:这个有很多官方提供的组件,比如:like按钮,可以放到你
自己网站上。
4.在Advanced Topics(//developers.facebook.com/docs/advancedtopics/)
这个下面有很多高级API,比如:
1)Ads API:广告API,你可以在自己的应用中添加广告
2)Payments:支付API,你可以做一些收费功能
3)Chat API:你可以利用这个API做一些聊天功能
4)Internationalization:关于国际化的API,我觉得这个API,网页版的应用
应该会用到,如果你的应用想要国际化的话。
5.API
Reference(//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(//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();