2011-09-29 88 views
0

一样动态我正在开发一个facebook应用程序,用户可以观看播放列表中的视频并查看来自画廊的图像。该应用程序本身托管在我的服务器上,然后设置为Facebook中的画布页面。我想要的是让用户能够“喜欢”单独的视频和照片。我目前已经设置了它,以便在选择照片/视频时,它会修饰“Like”按钮的href属性,并附带相应页面的URL,并附加图像/视频ID的查询字符串。Facebook应用程序像

例如href =“http://www.myApp.com/index.php?id=0001”

这可以工作,但问题是,当“赞”事件发布在用户墙上时,创建的链接转到托管页面而不是Facebook的画布页面(换句话说,它离开了Facebook)。我想要的是用户墙上的“喜欢”链接将它们带到画布页面,并在页面内选择正确的页面和图像/视频。

我可以设置href进入画布页面,但那会在主页上的应用程序,我希望它直接到喜欢的图像/视频。有没有可能我可以修改url的方式,以便当它被点击时它告诉Facebook到底为canvas页面设置了什么url?

回答

0

因为其他人对此有困难我已经找到了解决方案。

设置你的href属性的“Like”按钮,您的应用程序,即“apps.facebook.com/myApp/”

然后,您可以添加在结束自己的查询字符串,以确定其中的Facebook页面你想要去的应用程序。选择可能对您的应用唯一的名称,以免它与Facebook可能同时处理的任何内容意外冲突。即

“apps.facebook.com/myApp/?myAppPage=photos & myAppId = 003”

在到达网页代码

现在把这样的事情在顶部:

if (isset($_REQUEST['myAppPage'])) { 
$myAppPage = $_REQUEST['myAppPage']; 
if (isset($_REQUEST['myAppId'])) { 
    $myAppId = $_REQUEST['myAppId']; 
    $qsName; 
    switch ($myAppPage) { 
     case "photos": 
      $qsName = 'gal'; 
      break; 
     Case "videos": 
      $qsName = 'vid'; 
      break; 
    } 
    header("Location: $myAppPage.php?$qsName=$myAppId"); 
} 
} 

这应该在不离开Facebook的情况下将您的应用重定向到您想要的页面。然后你只需要编写你的页面来根据标题中传递的新查询字符串加载正确的内容。

希望这可以帮助别人。