[2013-02-28更新]正式版Ver1.2.5已釋出囉~ 

大家都已經知道MSN(Live Messenger)將在今年3月退休的事(最近又聽說台灣地區下線時間會延到3/15之後),Skype雖然能把MSN連絡人整合進來,但是為連絡人設好的類別通通不見,造成很大困擾!! 以我自己為例,MSN有近300個連絡人,原本分成多組,例如: 專科同學、二技同學、前公司同事、A部門同事、B部門同事、廠商、MVP... 等等。要找尋特定連絡人,只需展開特定類別,每個分類最多十來個連絡人,很快就能找到。

這下子可好,Skype轉了MSN連絡人卻不把類別順便轉進來,想跟不常往來的MSN連絡人交談,記不得對方MSN名稱無法關鍵字檢索,而連絡人海茫茫,只能一邊滾輪子轉捲軸,一邊瞇著眼看名單如走馬燈流過,老人家眼花常看漏,三不五時氣到想捏碎滑鼠。而前些時候,看到"先將MSN擷取畫面以便日後對照分類"的建議,更是讓拎杯氣到想使出萬佛朝宗~~

身為程式魔人,該自力救濟的時間又到了!! 做了簡單研究,發現要在Skype裡設定連絡人群組不難,用Skype4COM就可輕鬆搞定,有挑戰性的部分是如何取得MSN設定的連絡人類別,之前玩過Live SDK,但細究後發現Live SDK沒有任何API可以取得連絡人類別資訊。退而求其次,我想到Windows Live Hotmail的連絡人網頁可使用類別篩選連絡人,是印象中MSN以外另一個有連絡人類別資料的地方,理論上找到其底層資料來源,就能抓出連絡人類別設定。
(題外話: 最近聽說Skype整合MSN時發生連絡人資料完全消失的杯具,提醒大家善用Live網站的連絡人匯出功能,把自己的連絡人清單備份到本機另存CSV檔,以求安心)

經過一番Hacking,成功地從Live連絡人網頁JavaScript Object偷到連絡人分類資料! 至此,餘下的工作便是如何把兩段Hacking整合在一起,包成工具程式讓程序一氣喝成!

我寫了以下的小工具--MSN Category Tool for Skype。

【準備工作】

  1. 確認Windows已安裝.NET Framework 4.0,一個簡單檢查方法是看系統碟有沒有以下目錄: C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.Extensions.dll,若沒有目錄,表示沒裝.NET 4,若有目錄但沒有System.Web.Extensions.dll,表示你可能只裝了.NET Framework 4.0 Client Profile(精簡版),請安裝完整版(可參考安裝指南)。
  2. 請先確認Skype已啟動,並使用MSN帳號完成登入
  3. 已完成Skype與MSN帳號合併,連絡人清單已可看到MSN連絡人

【操作步驟】

  1. 執行程式後,按下【登入Live網站】,最下方有個內嵌瀏覽器會導向Windows Live Hotmail網站
  2. 請登入Hotmail網站
  3. 一旦下方進入連絡人頁面,稍等一下,程式會開始擷取連絡人類別資料
  4. 程式會將抓到的連絡人資訊顯示在中間的表格
  5. 此時按下【設定Skype連絡人類別】,程式會試著連上Skype開始設定連絡人類別
  6. 當Skype程式偵測到工具程式要連線會出現如下確認畫面,需按下【允許存取】才能成功設定類別。

設定完成後,即可看到Skype類別出現一堆以"MSN-"為首的新群組,成員即為原MSN類別下的連絡人,代表匯入完成。

【注意事項】

  1. 免責聲明: 本工具為免費提供,恕不對其可能造成的任何資料遺失、系統故障、財產損失(雖然以我的理解不致發生)負責,使用前請自行備份資料,評量風險後再使用,歡喜用、甘願受。
  2. 資安宣導: 使用前請確認程式來源安全無虞,若Skype誤授權給來路不明的惡意程式,可能導致資料遭竊、身分被盜等風險。
  3. 目前工具尚未加入防呆,請勿重複執行設定類別動作。重複執行可能會出現同一連絡人在群組出現兩次的問題,需手動清理。
  4. 評估程式測試尚不周全,計劃這幾天程式會先透過黑暗執行緒Facebook分舵讓群組成員試玩,彙整回饋後,幾天後再透過部落格提供經驗證較穩定的版本。換句話說,想等較穩定可靠版本程式的同學請再耐心等候,充滿熱血勇氣想當白老鼠的同學請往FB移動~

[2013-02-25更新]推出1.1版,加入很陽春的CSV匯入匯出功能,提供簡單的名單編輯功能。(參考: nohick的留言)

[2013-02-26更新]有網友回報,抓不到連絡人資料可能與Live Hotmail設成英文介面有關,抓不到連絡人時可試著將Hotmail網頁語系調成中文再試。

[2013-02-27更新]開放1.2版測試,改良如下

  1. 解決Skype現存同樣顯示名稱群組時出現"Error: 已經加入含有相同索引鍵的項目"問題
  2. 允許重複執行匯入動作。當程式偵測到Skype中已存在"MSN-*"命名群組,將彈出確認對話框確認是否刪除,若使用者無意保留原有MSN-*群組(注意: 若某些MSN-*群組曾經事後調整,手動設定資料將遺失),請按【是】,工具便會刪除現有MSN-*群組再重建群組匯入成員,以避免資料重複。
  3.  匯入/匯出CSV 按鈕中文化 

另外,再發現Skype WTF行為一椿。設完類別後,改以Skype帳號(非MSN帳號)登入Skype,MSN-*群組仍在,但其中無任何成員(因Skype帳號登入時,非屬帳號合併模式,不認識MSN連絡人合理。)。重新以MSN帳號登入Skype後,發現內建的Messenger群組繼續空無一人,Skype彷彿不認得任何MSN連絡人,大驚失色,以為發生傳說中的MSN連絡人清單完全消失悲劇! 所幸透過Live網站確認連絡人資料仍在,重啟Skype以MSN帳號登入,Messenger群組恢復,但MSN-*群組則空無一人,必須重新設定,幸好新版工具已支援重複匯入,重新匯入後瞬間還原。


Comments

# by nohick

我也研究過 .live JavaScript Object 偷連絡人分類資料 不過沒有把它完成 因為聯絡人的 Email 好像還要點選連結才能看到 請問暗黑大能不能提供直接匯出含有群組資訊的 csv 或其他格式檔案呢? 因為我可能不想全部聯絡人都匯入~

# by Wilson

笑點: Skype MSN連絡, 人類,別匯入,工具Ver 1.0 Beta測試 噗 ! ヾ(`・ω・´)

# by Jeffrey

to Wilson, 這個哽很讚,我喜歡! (擊掌) 沒想到我的萬佛朝宗已經滲透到PO文裡了~~ XD

# by Jeffrey

to nohick, 我有想過為中間區類別表加上匯出/匯入CSV功能,看看是否這幾天來得及加上。

# by Rhode

我已經去當白老鼠了,一次就成功沒出啥問題,唯一美中不足的是別名沒替換,但至少比在茫茫大海中找誰是誰容易多了,感謝!!!

# by nohick

先謝謝了~ 辛苦了!

# by T客邦

你好 我是T客邦網站 我們想要報導Skype MSN連絡人類別匯入工具Ver 1.0 Beta測試 請問可否授權步驟和圖片供使用 感謝

# by Jeffrey

to T客邦, 感謝肯定,步驟說明及圖片歡迎引用,註明出處即可。 目前程式透過FB"封測"還算順利,應可在幾天後在本站提供下載,最新開發進度會不定期公布在FB。

# by Jay

剛測試匯入msn聯絡人群組到Skype 6.2.59.106正常,真是太感謝了.

# by Edward

Windows XP執行MSNCatgTool這個執行檔會發生錯誤,無法正常執行。 skype版本:6.0.60.126 / 6.1.60.129 / 6.2.0.106 Windows 7 可以正常執行並匯入 skype版本:6.1.0.129 Windows 7匯入後,再從Windows xp登入,匯入的群組會無法顯示,但刪除C:\Documents and Settings\Administrator\Application Data\Skype目錄再登入就可以正常顯示匯入的群組

# by Brian Yeh

您好,我按照的您提供的工具與使用步驟,但在步驟4的地方並沒有自動匯入聯絡人清單,不知道是何種問題。

# by Winson

請問一下,我登入Outlook之後, 會出現這個網頁的指令馬發生錯誤。 當我點選要繼續執行這個網頁的指令之後,下面的Windows Live HOTMAIL的聯絡人有跑出來,但上面的訊息列,會停留在 : 等待讀取聯絡人資料中。

# by Dizzyfish

您好~感謝您的熱心分享! 這邊有遇到問題,XP在登入Live網站後,也是會卡在"等待讀取聯絡人資料中",然後我有嘗試去Live網頁輸出CSV檔,可是Import到MSN Category Tool時會出現錯誤訊息,好像是欄位資料不正確,回報給您~ 希望版本能越來越棒!!支持您!!謝謝!!

# by Jeffrey

大家在回報問題時,請再多提供一些資訊,例如: 無法匯入時, 最下方的連絡人網頁是否已出現? 中間的表格有無資料? 執行的Windows版本及IE版本? 資訊愈多我愈有機會幫忙解決,若真的無法解決的話,也只能說聲抱歉了。(但建議可換台電腦試試,或許環境不同問題就消失了) to Winson, 猜測或許網頁指令碼出錯與IE有關? 是XP+IE6/7嗎? 或許可以找台Win7試試。 to Dizzyfish, 卡在"等待讀取聯絡人資料中",應是未能正確抓到網頁裡的資料。要匯入CSV時,它吃並不是Live所匯出的CSV格式,原本設計的做法是"先利用工具匯出CSV,修改後再匯入同一CSV",如要自行組裝CSV,請依照以下格式: 1:boo@mail.com.tw,MSN-群組A 1:foo@hotmail.com,MSN-群組B 第一欄叫Handle,請為MSN帳號的email加上"1:"字首。

# by Jeffrey

感謝FB網友Hortin Wang補充: 如果hotmail網頁預設英文版會出現錯誤訊息,得先將網頁語系改回繁體中文,才能順利擷取聯絡人資料!

# by dllee

真的是太感謝您提供此工具,在MSN停用前,總算是等到了解法,雖然,這個應該是官方 Skype/MS 要提供的才對... 今天我做了測試, MSNCatgTool.exe 1.1 版(執行檔的版本仍為 1.0 是由 MSNCatgToolv11.7z 解壓而得) Skype 是官網最新版 6.2.60.106 OS : XP Pro SP3 IE : 7 (XP 有提供更新時都會更新, 沒在用它, 不確定最終版本編號,平常使用 FireFox/Chrome) 在匯入時,共有 13 個群組,只有兩個群組不正常(應該是,因為有些名單重覆或很多短時間很難一一確認): MSN-工作 MSN-乾癬病友 不正常的狀況是: MSN-工作 此群組內沒有成員, 變成空白群組 MSN-乾癬病友 此群組內的成員變成 MSN-工作 的成員 原本的 MSN-乾癬病友 群組變成沒有匯入到?! 接著把 MSN-乾癬病友 更名為 MSN-工作, 再由 MSNCatgTool.exe 匯出 CSV 留下 MSN-乾癬病友 再次使用 MSNCatgTool.exe 匯入後,再轉到 Skype, 就算是正常了。 再次感謝您提供的工具, 也希望上述的問題回報能使此工具更完善, 謝謝。

# by tzuyang555

你好, 我在我的部落格上有寫一篇Skype整合的Q&A 請問我可以把這篇節錄內容到我的部落格上嗎?

# by John

順利完成~thx

# by 小美

你好~ 請問win8是否還不在可使用的範圍內呢? 因為我下載下來之後 我點開都是直接跳程式已經停止運作 OS: win8 SKYPE: win8 市集下載的SKYPE 找不到地方看版本 囧

# by Jeffrey

to dllee, 感謝詳細的錯誤說明,可惜對錯誤來源我暫無Idea。(知道匯入CSV功能派上用場很開心) to tzuyang555, 歡迎引用,請註明出處並留意後續更新。 to 小美, 我自己是在Win8上開發及測試。不過Skype要安裝及執行"桌面專用的Skype"(請至Skype官網下載安裝),工具不支援市集下載的Skype App。

# by yumofeng

第一次PO軟體的情況回報,有點不好意思 :$ 匯入的狀況算是大多都沒問題, 不過有發現一些狀況. 1.匯入名單中如果有是奇摩帳號的人,好像就會匯不到或是顯示被封鎖狀況.(也沒辦法解除封鎖的樣子) 2.用sk登入MSN之後匯入,到這邊是成功的, 但是如果說用sk登sk帳號之後,再用sk登MSN帳號, 那麼原來MSN的聯絡人都變成不在任何群組(也就是都堆回到"messenger"裡面,原來排好的群組都空了) 以上. 最後感謝做出這個軟體並分享的你

# by Justin

回報環境: Win7 x64 Eng IE9.0 Language Preference: zh-TW Hotmail Outlook 語言: 繁體中文 MSNCatgTool.exe v1.1 mail.live.com讀取網頁並顯示正常,但Contact List的ListView為empty,看來是因為無法執行JavaScript之故: Script Error An error has occurred in the script on this page. Line: 1 Char: 1 Error: Unable to get value of the property 'SendMessage': object is null or undefined Code: 0 URL: https://bay002.mail.live.com/default.aspx?rru=contacts Do you want to continue running scripts on this page? 也許該換台電腦測試Win7 x32或IE8。 感恩。

# by Justin

回報環境: Win7 x64 Eng IE9.0 Language Preference: zh-TW Hotmail Outlook 語言: 繁體中文 MSNCatgTool.exe v1.1 mail.live.com讀取網頁並顯示正常,但Contact List的ListView為empty,看來是因為無法執行JavaScript之故: Script Error An error has occurred in the script on this page. Line: 1 Char: 1 Error: Unable to get value of the property 'SendMessage': object is null or undefined Code: 0 URL: https://bay002.mail.live.com/default.aspx?rru=contacts Do you want to continue running scripts on this page? 也許該換台電腦測試Win7 x32或IE8。 感恩。

# by Wayne

Win7 x64 中文旗艦版,問題同樓上,謝謝。

# by Jimmy

您好: 我在win7使用v1.1 beta同步帳號後, 在win7上的skype可以看到MSN原有群組的分類, 然而改用Mac(OS X Lion 10.7.5)上的skype(版本n 6.1.0.2295) MSN的群組又變成沒有分類. 謝謝

# by Jeffrey

to yumofeng, 奇摩連絡人未匯入或被封鎖應是Skype合併帳號發生問題,你說的改用Skype帳號登入再用MSN帳號登入後MSN-*群組會空白的問題我也重現了,推測是Skype的鳥行為,幸好新版工具已支援重複執行匯入。 to Justin, 由訊息來看,似乎是工具在整合內嵌的瀏覽網頁時發生問題,我有接到幾件類似回報,但手邊無法重現錯誤,暫時無法解決。修正之前,建議先換台機器試試。 to Jimmy, Mac的Skype是用MSN帳號還是Skype帳號登入?

# by Jimmy

To Jeffrey 1.在Mac上的Skype-我是用MSN帳號登入為主 (在win7上不管是用MSN帳號或skype帳號都可以看到分類; 在Mac上則是都看不到) 2.我這次實驗整合了三個帳號: 前兩個MSN帳號都是選擇"我是新用戶",而非選擇"我擁有 Skype 帳戶"; 第三個則是選擇整合到已有的skype帳號. 共通點如1.所述 不過可以在win上使用已經很方便了

# by Toby

無法登入 會出現下面得error The requested Web page has been blocked by APP Enforcement. Please contact your system administrator for further information.

# by 藍星

按下"設定Skype聯絡人類別"後,會等一小段時間,然後顯示"Error: Wait timeout",不知道是哪邊需要注意的? OS: win-7 Skype: 6.1.0.129

# by Jeffrey

to Toby, APP Enforcement是3200的應用程式管理機制(http://www.ithome.com.tw/itadm/article.php?c=67076) 感覺是Windows Live Hotmail網站被(公司網管?)封鎖了。 to 藍星, 按鈕後,Skype有無出現步驟6的授權確認?

# by ccko

如果在Skype程式偵測到工具程式要連線會出現如下確認畫面,選擇不允許之後。 程式再按一次設定skype聯絡人按鈕,會出現在Connection Refused.的訊息。 該怎麼解決呢?

# by gyd

建議: 1. 自由選擇(或設定)前綴字, 而不是強制"MSN-" 2. 是否可以同時將好友別名設定過去? 3. 是否可以跨群組偵測重覆的帳號?

# by Jeffrey

to gyd, 1.如需調整"MSN-"前綴字,可利用"匯出CSV"功能,修改CSV檔將"MSN-"置換成所需字首後,重新"匯入CSV"再執行設定類別動作。 2.有不少網友都提了別名設定需求,但苦於資料來源並無別名資料,巧婦難為無米之炊... 3.跨群組偵測重複帳號的功能,目前需求不多,但會列入考量。

# by northbear

請問為什麼每次開啟貴網站提供的執行檔, 都會出現skype is not running, 我明明就都有讓skype執行耶, 也有按照貴網站的步驟做, 還請高手幫忙解惑, 謝謝 我的電腦是Win7 企業版

# by MOSOFI

這個工具真的太棒了!太感謝您了! 在此有個小問題想請問,如果我有兩台電腦,A電腦因公司資安規則而無法使用工具,B電腦則已轉換群組資訊成功,是否能從已成功的B電腦抓取某檔案放置A電腦解決呢?

# by Irene

請問我的群組跟名單匯入成功後,但沒有辦法正常顯示上線 全部名單內的人都是離線狀態 同事也看不到我上線,我也看不到他們上線 名單內容變成 1:xxxx@mail.com 這樣是正常的嗎? 如果無法解決的話,有辦法回復到匯入名單之前的情況嗎?謝謝!

Post a comment