簡體   English   中英

Zend框架Facebook重定向URL到畫布應用程序URL

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM