刷新 Line 針對網址 og:image 的快取 refresh LINE URL og:image Cache

寫前有寫過一篇如何刪除Line 針對網址訊息的og:image快取,今天需要這功能時居然沒作用了,Line還是自顧自的秀出舊圖片
https://vector.cool/clear-line-url-preview-cache/

即便使用 Line 的工具 poker 刪除緩存,重新抓取已經抓到新的 og:image 圖片,但實際在 Line 貼上相同網址,一樣呈現舊圖,跟客戶解釋這是緩存過幾天就會好,但總是有瘋子客戶會瘋狂追問,為什麼還沒好,為什麼還是舊圖、什麼時候會好、好了沒,為了耳根清靜,我找到一個新方法能刷新,也許也能幫助到你

1.確定目標網頁正確設定 og:image 標籤

檢查一下,有可能真的是你的問題,那客戶罵你是剛好而已,哈,先確定是否存在這標籤,另外也要確定標籤上的連結是可以正常開啟的,當然你也可以貼到 Facebook 塗鴉牆驗證一下,如果設定正確,Facebook 將會抓到你預期要呈現的縮圖

2.在網址上加參數

假定你要刷新預覽圖片的網址為:
https://example.com
你只要在這網址上加上參數,至於參數要加什麼就隨便你,加上參數大概會長這樣
https://example.com?aaa=bbb

3.貼到 Line 上

把步驟2加上參數的網址貼到 Line 上,此時 Line 就會刷新該網址的預覽圖片了,如果成功刷新圖片了,即便目標網址移除參數後,仍然會是新的預覽圖片

試試看,看對你們有用嗎?

[……]

閱讀更多

專案「拖延」的藝術-老師不會教的事

如果是專案管理者,專案執行時延遲是肯定會遇到的問題,但沒人會教你「拖延」。
這裡討論的拖延,並非故意拖延,是基於團隊或資源分配導致的延遲,拖延有時只是必要之惡,但還是要盡快完成任務,不可懈怠,當專案進入「拖延」時刻猶如走鋼索的人,得到掌聲及粉身碎骨於一念之間,如何為自己或組織爭取多一點時間,不會遭到罰則又讓專案順利完成,且得到顧客滿意這就是門藝術。

但如果實際進度真的與預期相距甚遠,建議直接道歉,並與客戶共同尋求解決方案才是正道

依據經驗歸納出幾種技巧:

技巧性拖延

當客戶需求在不確定的階段,給客戶多點時間想想,順勢將完成時間遞延,製作時間加上客戶的猶豫思考時間這是非常合理的,而團隊只是先做別的事而已,但你得到額外的拖延額度

答應客戶範圍外的小功能

客戶需求變更,在可控的情況下,答應客戶
並延伸討論幫客戶想更多解決方案,但需要拿捏就是快速、簡單、看得到東西的小事
預留延遲的伏筆,記得讓對方感受到欠你個人情

推託複雜的更改

執行階段,已陷入延遲的專案,切記!! 不可再加入新的大範圍或複雜的任務,這將壓垮你和你的團隊或組織,專案必定延遲,既不被客戶接受、也不被團隊或組織體諒,裡外不是人。
告訴客戶的額外需求先用簡單的替代方案先處理,此舉說明既沒有坐視不管,也先幫客戶解決當下遇到的問題,若要真正的解決額外需求,等當前專案結束後再來討論,通常客戶是可以接受的

無關緊要的小事先做

避免客戶要求檢視進度時,如果什麼東西也沒有,客戶期待將摧毀對你的信任,所以花一點時間先做很快完成的簡單小事、看得見的小事,因為主要會延遲的通常是大功能或沒做過的新功能,這些功能通常在完成前無法展示,如果沒先做些無關緊要小事,將陷入沒有東西看的窘境,反之,當客戶要求檢視進度時,就可展示這些無關緊要的小事,鉅細靡遺解釋這無關緊要的小事,藉此掩蓋還沒完成的大功能,讓會議有東西看、有東西講、有東西討論,至少看圖說故事,讓業務還是PM發揮他們的唬爛功力,最好能延伸討論無關緊要問題,帶客戶在這些無關緊要的問題上做無謂的討論,無關緊要的問題,結論還是無關緊要。
至少讓你順利度過進度審查會議

哀兵策略

如果是已經快要完成了,這是最後一步的終極手段,請小心使用,如非必要請不要用,
這時通常是客戶等待的臨界點,基本上客戶已經生氣了,此手段盡可能只用一次,用第二次就非常拙劣,客戶對你信任會降至最低,直到客戶看見東西。

哀兵策略意旨因人身不可抗力的原因,導致專案延遲,常見的有染疫、流感、重感冒、住院、大姨媽來(僅對男客戶有效),道德勒索讓客戶無法質疑,真的不是故意無法出席、不能主持,但通常這時效頂多三天,你就必須好了,包含你的專案

請謹記以上技巧並非長期解決之道,它們僅為應急之計。持續改進您的專案管理流程和時間管理能力將有助於減少這些緊急情況的發生。

原創,引用請標明出處

[……]

閱讀更多

PHP 上傳檔案,自訂錯誤訊息,當超過php.ini post_max_size 限制時

PHP上傳檔案會受限於 php.ini post_max_size 的值,這非常合理,但在程式中檔案上傳超過 post_max_size 時會直接中斷檔案上傳動作,吐出一個Warning 

在正式環境中,通常會關閉錯誤報告,程式中試著用 $_POST and $_FILES 找上傳檔案超出 post_max_size 的線索,皆回傳空值,如此一來程式很難判斷發生了怎麼一回事,沒辦法回應使用者目前情況,影響使用者體驗

透過以下代碼,可以透過PHP判斷上傳檔案超出 post_max_size 的錯誤,以便在輸出的頁面告訴使用者發生什麼事,當然也可以修改它,做需要的錯誤處裡

[……]

閱讀更多

CSS 選擇器,模糊查找匹配元素

CSS選擇器中沒有所謂的「萬用字元(*)」,可以透過一些方式接近模糊查詢方式,查找匹配屬性或值的元素

歸納出幾種用法

下表屬性名稱不一定為Class,可以替換成需要的屬性
單引號可有可無

[class]比對元素包含指定屬性[id][class][href] 比對元素包含其中一個屬性[class=’test’] 完全比對元素屬性與值 (區分大小寫)[class^=’test’]比對元素屬性開頭為指定的值[class$=’test’] 比對元素屬性結尾為指定的值 [class*=’test’] 模糊比對屬性包含指定的值

使用範例:

See the Pen
CSS 選擇器,模糊查找匹配元素
by VECTOR.cool (@ann71727)
on CodePen.

[……]

閱讀更多

jQuery clone element and events

jQuery 一般情況下,利用 clone() 來複製元素,但是複製元素後,並沒有複製原本元素綁定的事件及數據,這點有點困擾,之前是在Clone之後,重新綁定事件,但這樣會變得很麻煩,也會讓程式碼變得很亂,在 jQuery 1.4 以後 clone() 加了一個貼心的功能,可以在複製的時候選擇要不要連事件及數據一起複製。

Demo 程式如下:

這是一個簡單的範例,在按鈕上綁定一個click事件,點擊按鈕開啟警告窗

這示例程式,當我們點擊 “Clone” 這按鈕,會複製一個上方的 “Click Me”按鈕,當我們點下新產生的 “Click Me”按鈕並沒有任何反應,代表並沒有複製到原本元素綁定的事件及數據。

See the Pen jQuery clone element by VECTOR.cool
(@ann71727) on CodePen.

接著我們看下方程式碼,用相同動作,原本的 “Click Me” 按鈕及新複製出的 “Click Me” 按鈕,都可以正常運行綁定事件,換而言之,事件成功被複製,如此就不用重新綁定,非常省事呢!

See the Pen jQuery clone element and events by VECTOR.cool
(@ann71727) on CodePen.

這兩段程式碼其中只差異在這一行

在 clone 中帶入 true,即代表複製綁定事件及數據,預設情況下是 false,詳細可參考 jQuery 的技術文件

https://api.jquery.com/clone/

[……]

閱讀更多

綠界ECPay測試信用卡號、WebATM,模擬付款

綠界科技ECPay 網路金流

綠界科技ECPay提供多元付費方式,包含信用卡、超商付費、WebATM等,也提供物流服務,解決自助電商自動收款的難題。

綠界科技很貼心的在系統整合階段時,提供模擬環境,可以模擬付費,以便測試系統是否可以正常運行,以下提供,模擬信用卡,及WebATM資訊。

信用卡

卡號 : 4311-9522-2222-2222

有效年月 : 大於當前日期

安全碼 : 222

WebATM

選擇台新銀行進行模擬付款即可

參考:
https://www.ecpay.com.tw/CascadeFAQ/CascadeFAQ_Qa?nID=1193[……]

閱讀更多

jQuery 選擇器,替代萬用字元 模糊查找匹配元素

jQuery 選擇器中沒有所謂的「萬用字元(*)」,可以透過依些方式接近模糊查找元素或值的目的

歸納出幾種用法

下表屬性名稱不一定為Class,可以替換成需要的屬性
單引號可有可無

[class]比對元素包含指定屬性[id][class][href] 比對元素包含其中一個屬性[class=’test’] 完全比對元素屬性與值 (區分大小寫)[class^=’test’]比對元素屬性開頭為指定的值[class$=’test’] 比對元素屬性結尾為指定的值 [class*=’test’] 模糊比對屬性包含指定的值[class!=’test’]元素屬性不包含指定的值

使用範例:

Demo Download 範例下載:

[……]

閱讀更多