Facebook Api 开发者使用(PHP版)
来源:互联网 发布:日本历史经济数据 编辑:程序博客网 时间:2024/05/25 05:36
如果想通过Facebook登录到你的网站,Facebook站外API可以实现你想要的,如下介绍实际使用.
注册Facebook Key http://www.facebook.com/developers/apps.php 注册后可以得到
App ID,API Key,App Secret (如果你想测试,必须要一个域名,申请的时候填上)
到https://github.com/facebook/php-sdk/下载PHP开发包
进入examples/页面,里面有个示例文件,
1
$facebook
=
new
Facebook(
array
(
2
'appId'
=>
''
,
//你的App ID
3
'secret'
=>
''
,
//你的App Secret
4
'cookie'
=> true,
5
));
修改如上
如果你本地的服务器无法验证FACEBOOK的SSL验证,请修改facebook class 的方法makeRequest
在curl_init()之后添加:
1
$opts
[CURLOPT_SSL_VERIFYPEER] = false;
2
$opts
[CURLOPT_SSL_VERIFYHOST] = 2;
上面的API支持FACEBOOK新旧两种格式,
通过调用api传不同的参数实现
1.路径型,如:/me
还有具体的参数可以参考:http://developers.facebook.com/docs/reference/api/ 页面
在右边objects下面,每个点击进去之后都有非常多的参数
2.数组型,如array(“method”=>”links.get”)
数组型是为兼容旧的API而保留的,建议用新的.旧的所有功能基本上新的都有,具体参数可以参考:getApiUrl 方法
如果你使用 /me 你会发现你取不到自己的邮箱地址,是因为你没权限,在http://developers.facebook.com/docs/reference/api/user/
你会发现有很多东西是要得到用户的授权才可以访问的,以下是具体的授权方式:
https://graph.facebook.com/oauth/authorize?client_id=171908639493418&redirect_uri=you url address&scope=read_mailbox,email
你也可以自己来往facebook里添加生成上述地址的方法,这里不介绍了
可以得到授权,你就可以往facebook推送消息了
01
$dat
=
array
(
02
"picture"
=>
"image"
,
03
"subject"
=>
"你好啊~"
,
04
"message"
=>
"呵呵,测试FACEBOOKAPI~,这个是测试信息.联系Q:97148830"
,
05
);
06
07
$f
=
$facebook
->api(
'/me/friends'
);
08
foreach
(
$f
[
'data'
]
as
$v
){
09
$f
=
$facebook
->api(
'/'
.
$v
[
'id'
].
'/feed'
,
"POST"
,
$dat
);
//$f是返回你发送的消息的ID,消息只能发送到公开的版面,比如消息墙
10
}
通过不同的$dat参数来实现不同的消息,具体你就参考上面的API参数解释的地址吧
还有一个问题,加入一个用户登录了你的网站后立即跑到facebook去把他刚才的授权给取消掉,你去取他的信息的时候就出错误了,
facebook也为这个情况提供了一个解决办法,请参考:http://developers.facebook.com/docs/reference/api/subscription/
就是让你的应用程序就订阅用户的状态,但用户使用了你的应用程序之后对你的在facebook上的应用进行有关操作的时候,facebook会发消息提示你
想使用这个功能,你得先到你的网站建立一个回调验证程序,FACEBOOK也为你提供了,可以在http://github.com/facebook/real-time/blob/master/samples/ 下载得到
把里面的 callback.php 放到你的站点目录,这个文件用于验证应用程序是你的外还用于得到用户的活动消息,
下面是如何添加订阅,查询订阅,删除订阅的代码,(更改就是发送添加订阅,存在的话会覆盖掉以前的)
01
$acc
=
file_get_contents
(
"https://graph.facebook.com/oauth/access_token?client_id=you app id&client_secret=you app secret&grant_type=client_credentials"
);
02
$t
=
explode
(
"="
,
$acc
);
03
$dat
=
array
(
04
"object"
=>
"user"
,
05
"fields"
=>
"feed,friends,activities,interests,music,books,movies,television,likes,checkins"
,
//就支持这些
06
"callback_url"
=>
""
,
//刚刚那个callback.php
07
"verify_token"
=>
"abc"
,
//你的callback.php里的那个token,自己看下或自己修改
08
"access_token"
=>
$t
[1]
09
);
10
$f
=
$facebook
->api(
'/appid/subscriptions'
,
"POST"
,
$dat
);
//添加
11
print_r(
$f
);
//啥也没返回
12
$dat
=
array
(
13
"access_token"
=>
$t
[1]
14
);
15
$f
=
$facebook
->api(
'/appid/subscriptions'
,
"GET"
,
$dat
);
//查询
16
print_r(
$f
);
//很多关于你订阅的东东
17
$param
=
array
(
'access_token'
=>
$t
[1]);
18
$subs
=
$facebook
->api(
'/appid/subscriptions'
,
'DELETE'
,
$param
);
//干掉了
添加后如果别人移除了他使用你的应用程序,会得到一个消息,大约如下:
Array
(
[fb_sig_uninstall] => 1//YOU APP UNINSTALL
[fb_sig_locale] => en_US
[fb_sig_in_new_facebook] => 1
[fb_sig_time] => 1293444384.8939
[fb_sig_added] => 0
[fb_sig_user] => 100001008942959
[fb_sig_country] => us
[fb_sig_api_key] => appkey
[fb_sig_app_id] => appid
[fb_sig] => 383d629e8eeac39022adbc1d158f6065
)
新版的API把crt证书移除了,但我这里还有保留,需要的下载
这样就可以实现facebook ssl 验证了,而不用设置
1
$opts
[CURLOPT_SSL_VERIFYPEER] = false;
2
$opts
[CURLOPT_SSL_VERIFYHOST] = 2;
不过要修改:
1
public
static
$CURL_OPTS
=
array
(
2
CURLOPT_CONNECTTIMEOUT => 10,
3
CURLOPT_RETURNTRANSFER => true,
4
CURLOPT_TIMEOUT => 60,
5
CURLOPT_USERAGENT =>
'facebook-php-2.0'
,
6
);
为
1
public
static
$CURL_OPTS
=
array
(
2
CURLOPT_CONNECTTIMEOUT => 10,
3
CURLOPT_RETURNTRANSFER => true,
4
CURLOPT_TIMEOUT => 60,
5
CURLOPT_USERAGENT =>
'facebook-php-2.0'
,
6
CURLOPT_CAINFO =>
'/home/lonely/public_html/fb_ca_chain_bundle.crt'
,
//你的地址
7
);
搞定~
错误:
200 The user hasn’t authorized the application to perform this action 用户没有权限
210 User not visible 用户无效
开发完毕,记得进入FACEBOOK的应用程序页面,吧沙盒模式关闭,否则用户没法登陆的~
(提示:Facebook不支持取得朋友的邮件地址,如果需求是这个,别在浪费功夫了)
参考原文:
http://www.cnblogs.com/liushannet/archive/2010/12/30/1921369.html
史上最牛的facebook開發網頁:
http://www.takwing.idv.hk/tech/fb_dev/index.php
另外有一个blog:
http://www.takwing.idv.hk/blog/
转载请注明出处:http://www.onexin.net/facebook-api-developers-use-php-version/
- Facebook Api 开发者使用(PHP版)
- facebook登录 api php
- Android使用facebook api
- Android使用facebook api
- facebook FB.api()使用
- Facebook Graph API使用介绍
- Android 使用Facebook API 开发
- Facebook API使用经验分享
- 使用facebook api 实现checkin poi
- facebook-ads-java-api Marketing API 简介及使用
- facebook php-webdriver 安装与使用
- php使用哈希表API
- php使用反射API
- twitter 和 facebook api的使用(原创)
- 1、facebook PHP版 SDK入门
- Facebook API Developers Guide
- Facebook API Begining
- Facebook API 开发记录
- javascript 正确截取单字节和双字节混和字符串的方法
- 编码知识
- C++的特性
- 设为主页代码及添加到收藏夹代码大全 .
- sip cancel 详细过程
- Facebook Api 开发者使用(PHP版)
- Linux下用w3m上网
- Initialization Parameter files: PFILEs vs. SPFILEs
- 数组作为函数参数并传递数组元素个数的几种有效方法
- 单片机中AD数据处理
- 数据类型
- 毕业之际
- ios 对时间排序
- 打印,边框线问题