發表文章

目前顯示的是 10月, 2016的文章

Microsoft Graph API (1) - 這啥?

圖片
Microsoft Graph API的前身叫做 Office 365 unified API。這什麼東西呢? 這是一套可以access Office 365中各種服務的資料的API,簡單一點說,就是透過這組API你可以存取O365中用戶的資訊。 你看到unified這個字眼,可能會猜測,那它出現之前,可能有一個比較不unifie的API囉? 是的,你沒猜錯。 這一段路是有一個演進的過程的,我們先來介紹一下,我嘗試說個簡易版的故事。 首先,會接觸到這個API,是一年多以前的事情了,那時Office 365開始在台灣推廣,我們需要撰寫一些程式碼來存取O365上的資訊(像是用戶身分、行事曆、檔案…等)。 那,微軟這麼大的軟體公司,應該會有提供一套什麼API來存取這些資訊,用起來應該很簡單,對吧? 如果你這麼想,那就…稍微天真了。 提供API是有的,但你會好幸運的發現,不是提供一套API,是好幾套API。為何呢? 因為本質上Office 365根本就不是『一套』軟體。 什麼意思? Office 365,其實一堆軟體服務(SaaS)的集合,請記得這一點,它不是一套軟體,它是一群軟體所形成的一個平台。例如Office 365中的檔案,其實是Onedrive特殊版,筆記本是OneNote,email、行事曆是Outlook,通訊錄要看你想要抓哪種,有AD的,有email用的…這,還只是個開始。 如果你觀察Office 365,你會發現他一直在長大,最近還推出了 Planner 、Power BI、Flow …等等等、等等等。聽說以後還要推出類似Slack的 Skype Team ,總之Office 365跟你想的可能不一樣,它並非是一套軟體,他是很多套軟體服務。 而這很多套軟體服務的網址(網站)根本不同,只是每一個網站之間用oAuth做單一登入(SSO)的身分驗證而已,讓用戶用起來『像是(但根本不是)』在同一個網站裡面,但其實你是在多個網站裡切來切去。 那,這就讓developer很頭痛了,因為你以為的『抓取Office 365的資料』,其實不是在跟一組API打交道,是跟一群API打交道,每一種API都有自己的呼叫方式,都要做一次身分驗證,每一個驗證都要先取得授權,這…也太痛苦了吧。 寫到這邊,你就該知道unified 的必要了,這也是Office 365

使用C#開發LineBot(2) - 新版Line@ Messaging API使用心得 (Line Bot v2)

圖片
注意,本篇部分內容已過時,新版Line bot申請流程,請參考 這篇 。 不廢話,直接切入主題,如果你想看前情提要,請看 這裡 和 這裡 。 如果你對開發Line Bot有興趣,你得先知道原本的Line bot API 改版了 ,最近很奇怪,微軟的bot framework也拼命改版,大家都很 隨便 敏捷… 新版叫做Messaging API,原則上和舊版的Line bot在概念上很像,但它和 Line@ 整合在一起了。這改版有何影響? 首先,你如果原本有寫好的Line Bot可以暫時不要動它,因為新版v2的Messaging API和舊版並不相容。 其次,新版的bot之所以稱為Line@ Messaging API,是因為,它是透過申請一個Line@帳號開始的,和以前申請一個Line bot帳號不同,這次Line bot的功能被Line@併了。你可以從底下網址直接申請一個" 具有Messaging API功能的Line@帳號 ": https://business.line.me/zh-hant/services/bot 留意該頁面最下方: 這是三個不同的按鈕。 開始使用Messaging API 開始使用Developer Trial 若要透過現有Line@帳號開始使用Messaging API…. 如果你選擇1,2,其實是先建立一個Line@帳號,然後頁面會引導你把該Line@帳號轉成支援Messaging API,如果你選擇3,則是把以前舊的Line@帳號改為支援Messaging API。 但請 注意 ,當你的Line@改為支援Messaging API之後,你就不能用你的Line@ App直接回覆用戶的訊息了(而且這動作不可逆,也就是轉過去轉不回來),用戶的訊息也只會被轉傳到你的Line@ WebHook URL,讓你透過bot程式碼來回覆訊息。 (我覺得這設計…我直說了…糟透了,既然要廢掉Lint bot改用Line@,還不能用Line@ app回訊息,只能在Line@ app和Messaging API中間二選一,那又何必把原本的line bot廢了跟Line@整合在一起呢? 不理解…) 如果你原本的Line@帳號有在用,建議你申請新的Line@去玩這個Messaging API,別用舊的帳號。 接著,你