【问题标题】:Like a Facebook Post externally using Graph Api - example使用 Graph Api 在外部像 Facebook 帖子一样 - 示例
【发布时间】:2012-07-11 08:08:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: php facebook facebook-graph-api facebook-like


    【解决方案1】:

    好的,所以终于找到了一个不错的解决方案,并且没有 curl。这是我在 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 是第一次发布的用户 ID,如下所示:SOURCEUSERID_POSTID

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

    还有这个 - Like posts over Facebook graph api

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

    【讨论】:

    • 如果帖子的所有者能够添加喜欢,我已经尝试过您的解决方案,但是如果用户登录并尝试在我的帖子中添加点赞,他会收到权限错误 200,请查看我的帖子stackoverflow.com/questions/12577481/…
    • moata_u 提出了一些很好的问题,如果您想了解更多信息,例如我的 ajax 函数和 html,以及如何检查登录用户是否已经喜欢帖子,请转到此处 @987654324 @
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 2018-04-27
    • 2013-11-07
    • 1970-01-01
    相关资源
    最近更新 更多