使用Facebook共享链接发送参数

时间:2014-05-21 21:31:19

标签: php facebook facebook-sharer

我有一个Facebook共享链接,我想添加userid的参数,以便可以在Facebook共享链接中添加特定于用户的内容。

我的链接如下

  <a href="http://www.facebook.com/sharer/sharer.php?u=<my site url>?UserId=[User-Id] target="_blank"><img src="assets/img/facebookBtn.jpg" alt=""></a>

我的元链接

    <meta property="og:site_name" content="Group D World Cup Predictor" />
    <meta property="og:url" content="http://www.example.com/extension/" />
    <meta property="og:type" content="website" />
    <meta property="og:title" content="I predicted [Winning-Team] to win Group D!" />
    <meta property="og:description" content="I predicted [Winning-Team] to win Group D! Give your World Cup prediction for a chance to win a 4 night holiday." />
    <meta property="og:image" content="http://www.example.com/extension/assets/img/sharingImage.jpg" />
    <meta prosperty="fb:admins" content="myadminmu==number" />

从测试我的PHP代码看起来似乎在发送它我能够看到用户ID。所以我的第一个问题是通过URL发送userId参数的正确方法。

其次我使用$ _GET来检索url UserId,这是检索userId的正确方法,我是否需要通过不同的方法访问它?

class HomeController extends BaseController {

  public function Index() 
  {
    $userId = $_GET['UserId'];

    $viewModel = new StdClass;

    $viewModel->WinningTeam = strtoupper(with(new FinalizeController)->getWinningTeam($userId)->Name);

    return View::make('home', $viewModel);

  }
}

我知道getWinningTeam工作,所以它下到url并且它不将UserId作为参数发送到主页。元标记用于访问有关该用户的相关信息。

我一直在阅读很多文章,说它已被折旧,你可能不会发送带有特定参数的链接,但它与实现方法形成鲜明对比。

任何指针都会非常感激

麦克

1 个答案:

答案 0 :(得分:2)

首先,尽量避免在URL中使用大写字母(查询参数也是如此)。

然后,你还应该对你的URL进行编码,因为它本身就是一个查询参数...这里是一个在线工具我用来编码/解码一个URL =&gt; http://meyerweb.com/eric/tools/dencoder/

因此,假设您的网址为http://www.example.com/mypage?userid=0123456,这是您的链接:

<a href="http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.example.com%2Fmypage%3Fuserid%3D0123456" target="_blank"><img src="assets/img/facebookBtn.jpg" alt=""></a>

最后,为了遵循&#34;永不信任用户输入&#34;规则,您不能使用$_GET['userid']直接接收原始查询参数并直接使用它...而应检查检索到的值是否属于您期望的类型(例如:is_numeric()如果你的userId应该是一个整数,等等。)。

实际上,您应该阅读this article about PHP Filters from the w3schools,因为我不是一位好老师。