解決LINE分享連結,在YII沒有成功生效的解決方式

2022-07-30
作家
Kevin Kuo
關鍵字
活動攝影
Kevin Kuo

根本原因:

在我們的程式有分成Javascript與PHP程式,我們在Javascript 產生了mate tag,但Line的解析網址程式本身不支援

Javascript(推測因為他不是瀏覽器),所以對我們在Javascript所產生的mate tag失效。

 

解決方案:

在PHP產生mate tag,讓網頁在伺服器處理過程中就渲染好內容。

 

這邊提供相關錯誤與成功的程式碼供大家參考

錯誤的:

/* Javascript
    $(document).ready( function() {
        $('head').append( 'createUrl('storesite/detail').'/'. $book_list->store_id?>">');
        $('head').append( 'seo_description ?>">');
        $('head').append( 'seo_title ?>">');
        $('head').append( '');
        $('head').append( 'book_img ?>">');
        document.title = 'seo_title ?>';
    });

*/

成功的:

// PHP YII 1.0

 Yii::app()->clientScript->registerMetaTag(DOMAIN.Yii::app()->createUrl('storesite/detail').'/'. $book_list->store_id,null, null, array('property' => "og:url"));
   Yii::app()->clientScript->registerMetaTag($book_list->seo_description, null, null, array('property' => "og:site_name"));
   Yii::app()->clientScript->registerMetaTag($book_list->seo_description, null, null, array('property' => "og:description"));
   Yii::app()->clientScript->registerMetaTag($book_list->seo_title, null, null, array('property' => "og:title"));
   Yii::app()->clientScript->registerMetaTag("website", null, null, array('property' => "og:type"));
   Yii::app()->clientScript->registerMetaTag(DOMAIN . $book_list->book_img, null, null, array('property' => "og:image"));

 

測試工具:https://poker.line.naver.jp/