在PHP站点的页面上添加Facebook评论插件的实例教程

首先,需要在facebook创建一个APP,创建方法见https://developers.facebook.com/,APP有一项是填写Domain的,这里填写你website的Domain。(APP是绑定domain的,不能乱填)
然后就可以使用facebook comments plugins。

使用facebook comments plugins,可以在页面中插入facebook comments。
生成code方法:https://developers.facebook.com/docs/plugins/comments

例如:有一个页面是http://www.example.com/ ,在这个页面中插入以下代码便可以使用comments plugings。

<!-- include facebook js sdk -->
<script id="facebook-jssdk" src="https://connect.facebook.net/en_GB/all.js#xfbml=1&appId=这里填写APPID"></script> 

<!-- comments plugins -->
<fb:comments colorscheme="light" numposts="4" height="360px;" width="614px" href="http://www.example.com/" fb-xfbml-state="rendered" class="fb_iframe_widget"></fb:comments>

在页面上显示如下

读取页面的分享总数与评论总数

https://graph.facebook.com/?ids={YOUR_URL}

{YOUR_URL} 需要 urlencode
例如:https://graph.facebook.com/?ids=http%3A%2F%2Fwww.example.com%2F
返回:

{
  "http://www.example.com/": {
   "id": "http://www.example.com/",
   "shares": 399517,
   "comments": 392
  }
}

代码如下:

<?php
$url = 'http://www.example.com/';
$api = 'https://graph.facebook.com/?ids='; 

$result = json_decode(file_get_contents($api.urlencode($url)), true); 

print_r($result);
?>

读取页面评论列表

https://graph.facebook.com/comments/?ids={YOUR_URL}

{YOUR_URL} 需要 urlencode
例如:https://graph.facebook.com/comments/?ids=http%3A%2F%2Fwww.example.com%2F
返回:

{
  "http://www.example.com/": {
   "comments": {
     "data": [
      {
        "id": "395320319544_27462154",
        "from": {
         "id": "100000223906701",
         "name": "Thu\u1eadn Phan Thanh"
        },
        "message": "hello moto",
        "can_remove": false,
        "created_time": "2013-10-07T10:01:40+0000",
        "like_count": 1,
        "user_likes": false
      },
      {
        "id": "395320319544_27877980",
        "from": {
         "id": "100001638736612",
         "name": "L\u00e3 Minh"
        },
        "message": "hi you",
        "can_remove": false,
        "created_time": "2013-11-13T02:57:01+0000",
        "like_count": 4,
        "user_likes": false
      },
      {
        "id": "395320319544_27879381",
        "from": {
         "id": "100004229015145",
         "name": "Th\u00f9y Dung"
        },
        "message": "Mg \u1ee7ng h\u1ed9 t\u1edb v\u1edbi nh\u1edb \u003C3",
        "can_remove": false,
        "created_time": "2013-11-13T05:38:12+0000",
        "like_count": 3,
        "user_likes": false
      }
      ...
     ],
     "paging": {
      "cursors": {
        "after": "MjU0",
        "before": "Mzk4"
      },
      "next": "https://graph.facebook.com/v1.0/395320319544/comments?limit=25&after=MjU0"
     }
   }
  }
}

根据next的url再请求可以获取下一页的评论内容

代码如下:

<?php
$url = 'http://www.example.com/';
$api = 'https://graph.facebook.com/comments/?ids='; 

$result = json_decode(file_get_contents($api.urlencode($url)), true); 

print_r($result);
?> 
时间: 2016-01-06

PHP使用反射机制实现查找类和方法的所在位置

本文实例讲述了PHP使用反射机制实现查找类和方法的所在位置.分享给大家供大家参考,具体如下: //参数1是类名,参数2是方法名 $func = new ReflectionMethod('UnifiedOrder_pub', 'getPrepayId'); //从第几行开始 $start = $func->getStartLine() - 1; //从第几行结束 $end = $func->getEndLine() - 1; //获取路径地址 $filename = $func->get

Thinkphp和onethink实现微信支付插件

thinkPHP和微支付实现的微信支付插件,在微信中调用微信jssdk实现支付,这里有详细的代码和教程,具体看这里: //实现的Wxpay钩子方法 public function Wxpay($param){ require './Addons/Wxpay/WxPayPubHelper/WxPayPubHelper.php'; $jsApi = new \JsApi_pub(); //=========步骤1:网页授权获取用户openid============ if (!isset($_GET

php利用反射实现插件机制的方法

本文实例讲述了php利用反射实现插件机制的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php /**  * @name    PHP反射API--利用反射技术实现的插件系统架构  */   interface Iplugin{       public static function getName();   }   function findPlugins(){       $plugins = array();       foreach (get_declar

PHP框架Laravel插件Pagination实现自定义分页

Laravel 的分页很方便,其实扩展起来也挺容易的,下面就来做个示例,扩展一下 paginate() 和 simplePaginate() 方法,来实现我们自定义分页样式,比如显示 "上一页" 和 "下一页" ,而不是 "<" 和 ">" ,当然扩展的方法掌握了你就可以肆无忌惮的扩展一个你想要的分页了,比如跳转到某一页,分页显示一共多少记录,当前显示的记录范围等等巴拉巴拉的... 5.1和5.2应该是同样的方法,

PHP基于反射机制实现插件的可插拔设计详解

本文实例讲述了PHP基于反射机制实现插件的可插拔设计.分享给大家供大家参考,具体如下: 说PHP和ASP等同的朋友们可以就此打住了,PHP支持反射,而且还是非常的强大.好了,我们开始今天的话题. 功能描述: 页面拥有一个主导航菜单,里头有默认连接若干. 插件统一存放在一个目录,插件载入后会自动在导航菜单中增加上自己所需的链接. 插件载入时可执行一定的操作. 动态增删插件无需改动代码. 最终效果: 首页,插件1,插件2 "首页"是系统自带的菜单项."插件1"和&quo

PHP中的reflection反射机制测试例子

Java类反射应用得非常广泛几乎是所有框架的最核心部分,PHP程序员似乎从不关心反射.尝试着用java的思想去理解php的反射,跟java基本上基本一致.参考了php手册:http://www.php.net/manual/zh/book.reflection.php. ReflectTest.php: <?php   class ReflectTest {       /**      * 用户ID      */     private $userId;       /**      * 用

PHP 反射机制实现动态代理的代码

演示用代码如下所示:  复制代码 代码如下: <?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function __construct() { $this->target[] = new ClassOne(); } function __call($name, $args) { fore

PHP反射机制用法实例

本文实例讲述了PHP反射机制的用法,分享给大家供大家参考之用.具体方法如下: 演示示例代码如下所示: <?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function __construct() { $this->target[] = new ClassOne(); } function

实例介绍PHP的Reflection反射机制

PHP5添加了一项新的功能:Reflection.这个功能使得程序员可以reverse-engineer class, interface,function,method and extension.通过PHP代码,就可以得到某object的所有信息,并且可以和它交互. 假设有一个类Person: 复制代码 代码如下: class Person {   /**      * For the sake of demonstration, we"re setting this private    

在PHP中使用反射技术的架构插件使用说明

反射API的插件方法是基于在运行时决定程序的功能来实现的,也就是说,它允许创建可选的接口方法,并在首次使用时检测到这部分接口方法,只有在插件中存在这部分接口的情况下,它们才会被用到. 假设拥有这样的接口 复制代码 代码如下: interface IPlugin{ function getMenuItems(); function getArticles(); function getSideBars(); } class Someplugin implelents IPlugin{ public

PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例

平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现ajaxFileUpload这个插件挺不错,所以就用这个插件来做异步上传文件的效果.网上也有很多对ajaxFileUpload插件的使用的文章,不过我发现没有PHP版,所以这次服务器那边的处理就使用PHP语言来处理. 一.详解ajaxFileUpload插件的语法参数 原理:ajaxfileupload是通过监听iframe的onload方

JQuery插件ajaxfileupload.js异步上传文件实例

在服务器端做文件上传的过程中,如果使用web服务器短端的上传控件去上传文件的话,会导致页面刷新一次,这样对用户的体验就不是很友好了.ajaxfileupload.js是一款jQuery的异步上传文件插件,使用简单且容易上手. 前置条件:ajaxfileupload.js文件,百度下载一个就行. JS引用: 复制代码 代码如下: <script src="/Content/JQueryJS/jquery-2.1.1.js"></script> <script

jQuery插件ajaxFileUpload实现异步上传文件效果

ajaxFileUpload是一个异步上传文件的jQuery插件. 传一个不知道什么版本的上来,以后不用到处找了. 语法:$.ajaxFileUpload([options]) options参数说明: 1.url   上传处理程序地址. 2,fileElementId   需要上传的文件域的ID,即<input type="file">的ID. 3,secureuri 是否启用安全提交,默认为false. 4,dataType 服务器返回的数据类型.可以为xml,scri

jQuery插件ajaxfileupload.js实现上传文件

AjaxUpLoad.js的使用实现无刷新文件上传,如图 1.创建页面并编写HTML 上传文档: <div class="uploadFile"> <span id="doc"><input type="text" disabled="disabled" /></span> <input type="hidden" id="hidFileNam

Ajax异步上传文件实例代码分享

非常不多说,直接给大家上干货,写的不好还请见谅. 具体代码如下所示: <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <script src="~/Scripts/jquery-1.8.2.min.js"></script> <title>Ind

Ajax表单异步上传文件实例代码(包括文件域)

1.起因 做前台页面时,需要调用WebAPI的Post请求,发送一些字段和文件(相当于把表单通过ajax异步发送出去,得到返回结果),然后得到返回值判断是否成功. 2.尝试 先是尝试了一下 "jQuery Form Plugin" ,这玩意就是的巨大的坑,实现他和jquery1.9.2兼容性就不是太好,好不容易把$.browser的问题解决了,发现用他上传文件得不到返回值. $("#view").submit( $("#view").ajaxSu

jquery使用FormData实现异步上传文件

考虑一个常见的用户上传头像的场景: 点击按钮,弹出文件选择框 选中图片并确认后直接上传图片 实现这个功能,需要使用<input>来添加文件,并实现上传功能.传统的上传文件是将<input>放到<form>中提交,但在这个场景中并不存在form表单,只有一个input而已.那么应该如何处理呢? 答案是可以使用FormData来实现文件的提交. 先看一下MDN对FormData的介绍: XMLHttpRequest Level 2添加了一个新的接口FormData.利用Fo

Jquery实现跨域异步上传文件总结

先说明白 这个跨域异步上传功能我们借助了Jquery.form插件,它在异步表单方面很有成效,而跨域我们会在HTTP响应头上添加access-control-allow-method,当然这个头标记只有IE10,火狐和谷歌上支持,对于IE10以下的浏览器来说,我们就不能用这种方式了,我们需要换个思路去干这事,让服务端去重写向我们的客户端,由客户端(与文件上传页面在同域下)来返回相关数据即可. 1.Jquery.form的使用 <form method="post" action=

jquery uploadify和apache Fileupload实现异步上传文件示例

jQuery Uploadify + Apache Fileupload异步上传文件示例1.可以限制上传文件大小和类型,理论上任何类型的文件都可以上传(自己根据api配置即可):2.后台使用Apache commons-fileupload-1.3.1.jar作为上传工具包,本示例支持一次性多文件上传:3.文件上传目录可以任意指定,请在web.xml中配置:Uploadify api 详见http://www.uploadify.com/documentation/ FileUploadServ

jQuery插件ajaxFileUpload异步上传文件

ajaxFileUpload.js 很多同名的,因为做出来一个很容易. 我用的是这个:https://github.com/carlcarl/AjaxFileUpload 下载地址在这里:http://xiazai.jb51.net/201610/yuanma/ajaxfileupload(jb51.net).rar AjaxFileUpload.js并不是一个很出名的插件,只是别人写好的放出来供大家用,原理都是创建隐藏的表单和iframe然后用JS去提交,获得返回值. 当初做了个异步上传的功能