2018年12月19日 星期三

QRCode開啟FB應用程式app的各種方式筆記

常遇到一種需求:可不可以讓使用者用QRCode掃描後可以連結到FB的粉專頁?

簡單的方式就是把FB的粉專的那串連結 (例如:https://www.facebook.com/MusicaPercussion/ )
直接拿去產生QRCode

不過有個問題是,以android為例子,這個掃出來的結果是會用瀏覽器打開,如果是我的話
看到這種的除非是很有興趣,不然就直接離開了,因為很不人性化!(最近測試 iOS 似乎沒這個問題,會詢問是否用fb app開啟)

為了人性化一點,有個解決方案是,先製做一個網頁,裡面用java script 抓取 navigator.userAgent 判斷是使用者是什麼裝置(PC, Android,iOS),提供 二個選項 給使用者自行決定:

1)使用 app 應用程式開啟
2)使用瀏灠器開啟(確保沒有安裝app時仍可開啟)


不同裝置開啟 fb 應用程式的方式如下:
  • iOS

fb://page/?id=<粉專ID>

範例:請使用iPhone點我測試

fb://event/?id=<活動頁ID>

範例:請使用iPhone點我測試

https://www.facebook.com/<粉專ID_或粉專代號>/posts/<貼文ID>

範例:請使用iPhone點我測試


(經過實機測試上面第三個方式不論是活動頁、粉專首頁、貼文…等,只要直接使用https://www.facebook.com/........
這種方式的連結iOS都會跳出對話框詢問是否以 fb app打開,因此這個方式是似乎是最通用的)


  • Android
fb://page/<粉專ID>

範例:請使用Android點我測試

fb://event/<活動頁ID>

範例:請使用Android點我測試


fb://facewebmodal/f?href=https://www.facebook.com/<粉專ID_或粉專代號>/posts/<貼文ID>

(這個應該可以應用在活動頁、粉專首頁、貼文…等。不過如果是比較舊的fb app 有可能無法使用此功能,fb app 版本號3002850 後的才有這個功能 )

範例:請使用Android點我測試

  • Web瀏覽器
瀏覽器的話就和fb網頁上的網址一樣

https://facebook.com/<粉專ID>

https://facebook.com/events/<活動頁ID>

https://www.facebook.com/<粉專ID_或粉專代號>/posts/<貼文ID>


SmartQuery安裝設定問題排除-Error:PAM004:產生Foreign Key Data...

Error:PAM004:產生Foreign Key Data時...統計類型

Database connection error:ERROR 
[IM014] [Microsoft][ODBC 驅動程式管理員] 指定之 DSN 中的驅動程式和應用程式架構不相符, ODBC Driver XXXX
is not accessible for user:IIS APPPOOL\DefaultAppPool, please create and use 
System DSN not User DSN

原因:
    Win7 64-bit下使用32-bit的ODBC:


SmartQuery安裝設定問題排除-HTTP 錯誤 500.21 - Internal Server Error

HTTP 錯誤 500.21 - Internal Server Error
處理常式 "PageHandlerFactory-Integrated" 的模組清單中有錯誤的模組 "ManagedPipelineHandler"


問題排除:


設定完再檢查一次就ok啦~


SmartQuery安裝設定問題排除-權限問題無法瀏灠檔案

若執行SmartQuery網頁,出現權限無法瀏灠檔案:
Error:Xml File lock error:C:\Inetpub\WWWRoot\Smart-Query\Data\SecForm.xml, File Name:C:\Inetpub\WWWRoot\Smart-Query\Data\SecForm.xml, 於 lc001p.XMLCache.SyncXMLElement(String cFile) 於 \\tsclient\C\Works\Smart-Query\lc001p\XmlCache.vb: 行 44 於 lc001p.XMLClass.LoadElement(String cFile, String cPath, Boolean lCache) 於 \\tsclient\C\Works\Smart-Query\lc001p\XMLClass.vb: 行 249 於 lc001p.lc001.GetAuthProjects(String& Names, String& Captions, Boolean lAuth, Boolean lAddeSign) 於 \\tsclient\C\Works\Smart-Query\lc001p\lc001.vb: 行 2252 於 lc001p.lc001.CheckLogin(String cPath, String _cCompany, String USERID, String PASSWORD, String cFile, String cSessionID, String cClientIP, Boolean lNeedPassWord, Boolean lGenMenu, Boolean lGenXml, String& cXML, Boolean lWinAD, Boolean lWithSystem, Boolean leSign, Boolean lMobile) 於 \\tsclient\C\Works\Smart-Query\lc001p\lc001.vb: 行 1228


確認以下資料夾是否將SYSTEM, NETWORK SERVICE的權限加入,若還是不行開啟everyone權限。
C:\Program Files (x86)\Smart-Query
C:\inetpub\wwwroot\Smart-Query






建議以下設定,執行上會較順: