[.NET] 透過Trello.NET套件取得Trello上的看版資訊

[.NET] 透過Trello.NET套件取得Trello上的看版資訊

敏捷式專案管理方法在軟體開發越來越盛行的情況下,很多專案團隊開始使用現在最好用的看版系統Trello(http://trello.com)

別小看Trello這個網頁軟體,它不但使用起來效能很好,介面也相當人性化,更厲害的是,它提供了很好用的API介面,讓有需要自行開發整合程式的人能夠進行功能的介接

有想要深入研究Trello API的人,可以參考它下列兩個網站,裡面有很詳盡的參考資料可以使用

http://trello.com/api

http://trello.com/docs

不過這不是這次要介紹的重點,這次主要是希望能從Trello上取得看版的資訊,如BoardListCard等等的內容回到Server端作應用

所以,就讓我們開始吧

 

1.安裝Trello.Net套件至網站中

這次我所使用的套件是Trello.NetTrello.Net可以透過Nuget自行下載並安裝,所以首先在建立好網站專案後,可以先夠過NugetTrello.Net安裝到網站上

image

 

2.取得Trello appKey

除了安裝套件外,請上https://trello.com/1/appKey/generate取得要開發的應用程式所使用的Key,當然要取得前必須要先登入Trello,進入頁面後,Trello就會提供給你一組developer API key,要能順利存取Trello上的資料,都必須靠這把Key才行

image

 

3.設計登入功能

上面兩個步驟都完成後,就可以開始進行登入功能的製作了,因為如果要存取使用者Trello的內容,Trello會在使用者透過API Key登入時詢問使用者是否允許授權你的app存取資料,所以登入授權的功能是一定要作的

首先,先將jquery以及Trello的js檔放入到頁面中

	<head>
	<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
	<script src="https://api.trello.com/1/client.js?key=XXXXXXXXXXX"></script>
	</head>

其中放在api.trello.com/1/client.js上傳送的key參數,就是在步驟2所申請的Key,把Key加在參數中一起載入Trello的client.js

然後在頁面中加入下方的Javascript以及登入的HyperLink

function AuthenticateTrello() {
   Trello.authorize({
   name: "maduka.Framework",
   type: "popup",
   interactive: true,
   expiration: "1hour",
   success: function () { onAuthorizeSuccessful(); },
   error: function () { onFailedAuthorization(); },
   scope: { write: false, read: true },
   });
}
function onAuthorizeSuccessful() {
  var token = Trello.token();
  document.getElementById("<%=hidToken.UniqueID%>").value = token;
  __doPostBack("<%=btnRefreshBoards.UniqueID%>", "");
}
function onFailedAuthorization() {
  alert('Login Failed!!');
}

AuthenticateTrello主要是進行跳出允許使用者存取Trello權限的對話視窗,Trello.authorize()所提供的參數,可以參考Trello API的頁面

基本上這段Sample Code說的是,我採用跳出式的視窗,允許一小時內讀取使用者的資料,但不進行資料寫入

而使用者在登入完成後,會返回目前的頁面,並呼叫onAuthorizeSuccessful()這個function

var token = Trello.token();

這一段,目的是為了取的Trello回傳的Token值,這個值很重要,因為接下來作任何事,都需要這個Token才能作

<asp:hyperlink id="hlJS" navigateurl="javascript:AuthenticateTrello();" runat="server" text="Login"/>
<asp:hiddenfield id="hidToken" runat="server" value=""/>
<asp:linkbutton causesvalidation="false" id="btnRefreshBoards" onclick="btnRefreshBoards_Click" runat="server"/>

在這段Sample Code裡,我將取得的Token值放入一個HiddenField中,並執行LinkButton的OnClick事件,為的是將Token能後順利的往Server端傳送

 

4.透過Trello.Net取得看版資料

在步驟3中,將Token值往Server端傳送後,接下來就可以由Server端的Trello.Net進行工作接手的動作

在取得Trello上使用者所使用的看版資訊前,Trello.Net必須要先進行一個登入的動作,這時候KeyToken就派上用場了

Trello objTrello = new Trello(strKey);
objTrello.Authorize(strToken);

透過這兩行,將Trello.Net元件進行Trello的授權動作,完成授權後,就可以真正的取得看版資訊

下面的程式碼,分別說明了要取得Trello上看版的資訊的方式

// 取得所參與的組織, OrganizationFilter可以進行資料的過濾
objTrello.Organizations.ForMe(OrganizationFilter.All)

// 取得看版清單, BoardFilter可以進行看版資料的過濾
objTrello.Boards.ForMe(BoardFilter.All)

// 取得指定看版中List的項目, objBrd是從objTrello.Boards取得的Board物件, ListFilter可以進行List的過濾
objTrello.Lists.ForBoard(objBrd, ListFilter.All)

// 取得指定List中Card的項目, objLis是從objTrello.Lists取得的List物件, CardFilter可以進行Card的過濾
objTrello.Cards.ForList(objLis, CardFilter.All)

這邊列出的使用,都是比較基本的內容,最主要是告訴大家快速存取Trello API的方式,至於比較深入的功能,大家就可以翻看看Trello API以及Trello.Net的資訊

https://github.com/dillenmeister/Trello.NET/wiki/Examples

http://trello.com/api

http://trello.com/docs

有興趣的人,也可以下載下列的附件檔案給大家作為參考

TrelloWebSite.zip