Facebook注册插件?

时间:2011-01-22 22:30:40

标签: php facebook plugins registration

我如何获取Facebook注册插件的结果并通过电子邮件发送给自己?

1 个答案:

答案 0 :(得分:1)

好吧,你应该发布你到目前为止所得到的东西..无论如何,如documentation中所述:

  

数据将传递给您的应用程序   作为签名请求。该   signed_request参数很简单   确保你的数据的方式   接收是发送的实际数据   主页。

因此,您需要指定redirect_uri,然后从signed_request处理/提取您想要的数据,并使用您正在使用的方法通过电子邮件发送。我在上面链接的文档的底部描述了如何处理数据:

<?php
define('FACEBOOK_APP_ID', 'your_app_id');
define('FACEBOOK_SECRET', 'your_app_secret');

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, '-_', '+/'));
}

if ($_REQUEST) {
  echo '<p>signed_request contents:</p>';
  $response = parse_signed_request($_REQUEST['signed_request'], 
                                   FACEBOOK_SECRET);
  echo '<pre>';
  print_r($response);
  echo '</pre>';
} else {
  echo '$_REQUEST is empty';
}
?>

因此,请发送您想要的字段,而不是print_recho函数!