[英]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.