Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Facebook edge.create_Javascript_Facebook_Facebook Javascript Sdk - Fatal编程技术网

Javascript Facebook edge.create

Javascript Facebook edge.create,javascript,facebook,facebook-javascript-sdk,Javascript,Facebook,Facebook Javascript Sdk,我已经添加了edge.create事件,浏览器也可以触发该事件。但是,当用户返回站点时,我如何检查他们是否喜欢该页面 <div id="fb-root"></div> <script type="text/javascript"> <!-- window.fbAsyncInit = function() { FB.init({appId: 'YOUR_FACEBOOK_APP_ID', status: true, cookie: true, xfbml

我已经添加了edge.create事件,浏览器也可以触发该事件。但是,当用户返回站点时,我如何检查他们是否喜欢该页面

<div id="fb-root"></div>
<script type="text/javascript">
<!--
window.fbAsyncInit = function() {
 FB.init({appId: 'YOUR_FACEBOOK_APP_ID', status: true, cookie: true, xfbml: true});
 FB.Event.subscribe('edge.create', function(href, widget) {
 // OK
 });
};


您将要查看…

此签名请求是验证发出请求的用户是否确实是“他/她所说的人”的facebooks方法。它是加密的,并使用您的应用程序机密对值进行解码。
解析此签名请求后,您将获得所需的数据。

function parse_signed_request($signed_request, $secret) {
  list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
  // decode the data
  $sig = base64_url_decode($encoded_sig);
  $data = json_decode(base64_url_decode($payload), true);

  if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
    error_log('Unknown algorithm. Expected HMAC-SHA256');
    return null;
  }

  // check sig
  $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
  if ($sig !== $expected_sig) {
    error_log('Bad Signed JSON signature!');
    return null;
  }

  return $data;
}

function base64_url_decode($input) {
  return base64_decode(strtr($input, '-_', '+/'));
}

如果您的问题是关于
like
for
URL
,则您只能为授权您的应用程序并授予
user\u likes
权限的用户获取此信息。要执行此操作,请发出下一个FQL查询:

SELECT user_id, url FROM url_like WHERE user_id = me() and url="URL_OF_PAGE"
如果您的页面在OpenGraph中有一个ID(或者您谈到Facebook页面),请通过查询的Graph API来访问的连接:

GET https://graph.facebook.com/me/likes/OPEN_GRAPH_OBJECT_ID
但是,如果您谈到Facebook页面和在页面选项卡中运行的应用程序,您不需要任何特殊的东西来获取此信息,因为它将在
signed_request
中传递(使用php-SDK的示例php代码):


签名请求仅适用于facebook上运行的页面标签,而非独立网站(afaik)
$signedRequest = $facebook->getSignedRequest();
$data = $signedRequest['data'];
if ($data['page']['liked']){
  // User is liked this Facebook Page
} else {
  // User is not yet liked Facebook Page
}