1

有人可以给我一个例子,从一个经过身份验证的用户的外部应用程序发布一个 Facebook 帖子的点赞吗?

假设我有一个从 facebook 拉帖子的提要,我想创建一个按钮,让用户喜欢我的应用程序中的帖子。单击此按钮后,我怎样才能最好地创建该赞,以便在 Facebook 上使用用户的赞更新帖子?

我的想法是我可以制作一个 javascript onclick 函数,该函数 ajaxes 到一个 php 脚本,它执行类似的操作 - $facebook->api("/$id/likes",'POST'); ,但我是否需要从该页面重新初始化 facebook,然后才能拨打此电话?或发送我的访问令牌等?这让我对这种服务器端方法感到困惑。您如何在点击时进行此调用?一个例子真的很有帮助!提前致谢!!

4

1 回答 1

0

好的,所以终于找到了一个不错的解决方案,并且没有卷曲。这是我在 ajax 函数 onclick 中调用的脚本:

<?php
$access_token = $_GET['token'];

$post_id = $_GET['id'];

function do_post_request($url, $data, $optional_headers = null)
{
$params = array('http' => array(
          'method' => 'POST',
          'content' => $data
        ));
if ($optional_headers !== null) {
  $params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
  echo "error";
}
$response = @stream_get_contents($fp);
if ($response === false) {
  throw new Exception("Problem reading data");
}
  return $response;
}

$data = "access_token=".$access_token;

$url = 'https://graph.facebook.com/'.$post_id.'/likes';

$result = do_post_request($url, $data, $optional_headers = null);
?>

同样在我测试过的工作代码中, $post_id 的用户 id 的帖子首先是这样的: SOURCEUSERID_POSTID

从这篇文章的组合中得到了这个解决方案 - http://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl/

还有这个 -喜欢 Facebook graph api 上的帖子

希望这对其他人有所帮助!

于 2012-07-11T12:11:19.903 回答