[英]Zend framework facebook redirect URL to canvas application URL
我目前正在开发一个基于facebook canvas(iframe)的应用程序。 有什么办法可以使Zend框架输出如下URL:
http://app.facebook.com/appName/controller/action
获得兴趣
http://www.domain.com/controller/action ?
并不是很重要,因为由于基于iframe的应用程序一切正常,但是我想提供更好的用户体验并获取url
http://app.facebook.com/appName/
根本不是用户友好的。 解决方案可能很简单,但我完全是“堆栈”。 该应用程序是按模块划分的,因此我可以在Boostrap.php中更改某项内容,该内容可能将解决方案保留在我的鼻子下面,但我看不到它..:-/
编辑:也许我没有像我应该的那样表达它。 问题不在Facebook内。 问题在于zend本身 。 它输出原始应用程序 (例如myapp.example.com)URL,我希望它输出http://app.facebook.com/myapp
提前致谢。
卢卡斯
我不确定您的问题是什么,但是Facebook已经将收到的URL映射到您的应用程序。
例如,如果您的画布URL设置为http://domain.com/
并且用户进入http://apps.facebook.com/appName/controller
则它将通过以下方式映射到http://domain.com/controller
:脸书
它适用于canvas / fbml和iframe应用程序。
要使Zend Framework生成具有备用基址的URL(即: http://apps.facebook.com/appName
: http://apps.facebook.com/appName
),可以在引导程序中执行以下操作:
protected function _initBaseUrl() {
$front = $this->getResource('frontcontroller');
$front->setBaseUrl('http://apps.facebook.com/appName/');
}
如果您不使用引导程序,则可以通过其他方式获取前端控制器的实例,然后执行以下操作:
$front = Zend_Controller_Front::getInstance();
$front->setBaseUrl('http://apps.facebook.com/appName/');
最后,我设法解决了这个问题。 因此,对于其他开发人员,我将在此处发布我的解决方案。
老实说,灵魂的归属有点复杂,但是:
Use Zend_Controller_Router_Route_Hostname
使用示例可在http://framework.zend.com/manual/en/zend.controller.router.html中找到,然后使用经典路由将其链接,例如:
$hostnameRoute = new
Zend_Controller_Router_Route_Hostname(
':username.users.example.com',
array(
'controller' => 'profile',
'action' => 'userinfo'
)
);
$plainPathRoute = new Zend_Controller_Router_Route_Static('');
$router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.