2013-03-08 75 views
1

我已經繼承了一個運行ColdFusion的站點,並且我試圖在該站點上獲得一個twitter feed。我找到了一個似乎可以完成這項工作的工具,並且我使用Twitter註冊了我的應用程序,並且擁有我的客戶端和OAuth代碼。在Coldfusion服務器上實現monkehtwets

問題是,我對Coldfusion不夠熟悉,無法確切知道需要將哪些代碼放在有問題的頁面上才能提取推文。這是我使用的庫:https://github.com/coldfumonkeh/monkehTweets

據我所知,我的代碼應該是這個樣子:

<cfinvoke 
component = "component_name" 
method="method_name" 
returnvariable="return_variable"> 
<cfinvokeargument name="arg1" value="value"> 
<cfinvokeargument name="arg2" value="value"> 
</cfinvoke> 

不幸的是我不知道擺在任意字段。在參數的任何位置似乎都沒有列表,或者您應該在名稱,方法和變量字段中放置什麼。我需要的只是拉近三次推文。這可能不是這裏的問題的標準格式,但任何知道Coldfusion的人的幫助都將不勝感激。謝謝!

+1

請確保閱讀您可以在包的安裝文件夾中找到的monkehTweets_readMe.pdf。更多信息和有用的鏈接可以在這裏找到:http://www.mattgifford.co.uk/monkehtweets-coldfusion-twitter-cfc-update。 – 2013-03-08 04:30:31

+0

我依稀記得可能有更新的monkehtweets包解決連接到更新的Twitter的API/OAUTH。 – 2013-03-08 05:23:27

+0

@AndreasSchuldhaus就我的關係而言,我擁有一切正常工作。我的問題在於我對Coldfusion的無能。我熟悉基礎知識(cfincludes,cfif/else等),但我以前從未使用過cfc文件。當實際輸出推文時,我應該將哪些代碼放入我的.cfm文件中?我閱讀了所有的文檔,但是我找不到任何類似的內容,「如果您想獲取最近的推文流,請在您希望它們出現的位置添加 codecodecode。」 – Chris 2013-03-08 06:05:07

回答

12

我已經編寫了一個非常基本的演示,以便從驗證用戶的時間線中提取並顯示信息。

您需要先從對象實例化,它似乎你已經完成:(明明添加自己的OAuth/Twitter的細節到初始化此方法)

<cfset objmonkehTweet = new monkehTweet.com.coldfumonkeh.monkehTweet(
      consumerKey  = '', 
      consumerSecret  = '', 
      oauthToken  = '', 
      oauthTokenSecret = '', 
      userAccountName  = '', 
      parseResults  = true 
     ) /> 

設置parseResults值爲true會將響應轉換爲可以在ColdFusion中轉儲並輕鬆讀取值的結構或XML對象。

接着,使給getUserTimeline()方法的調用。如果我們不中方法調用傳遞任何用戶ID或用戶名值,它會訪問時間軸,在身份驗證的用戶:

<cfset arrStatus = objMonkehTweet.getUserTimeline() /> 

由於沒有參數的有關格式發送,monkehTweet將返回默認響應爲JSON(其中parseResults設置爲true,將產生一個結構數組)。

現在我們可以開始創建循環。這是非常基本的,但會幫助你起牀和跑步。

定義鳴叫的最大數量返回:

<cfset totalTweets = 3 /> 

這是審慎的再檢查陣列的長度(正好在情況下,我們具有小於結果的期望的最大數目):

<cfif arrayLen(arrStatus) LT totalTweets> 
    <cfset totalTweets = arrayLen(arrStatus) /> 
</cfif> 

現在定義一個循環,從1開始以最大的totalTweet值:

<cfoutput> 
<ul> 
<cfloop from="1" to="#totalTweets#" index="tweet"> 

    <cfset status = objMonkehTweet.entify(arrStatus[tweet]) />  
    <li>#arrStatus[tweet]['user']['name']#: #status#</li> 

</cfloop> 
</ul> 

您現在可以訪問每一個具體的鳴叫,像這樣:arrStatus [鳴叫]。 monkehTweet對象包含一個名爲entify的幫助函數,該函數可將任何URL,用戶提及和主題標籤轉換爲HTML網址以供顯示。只需傳入tweet對象,它就會爲您返回格式化狀態。您也可以直接引用響應中的任何對象,就像我們在這裏使用用戶名稱的值一樣。

看到的是正在返回什麼,它總是最好傾倒了整個響應,這樣就可以看到什麼是可用的訪問和在你的顯示器使用:

<cfdump var="#arrStatus#" /> 

我希望幫助讓你加快並跑步。

+1

哇,非常感謝!這正是我想要做的!真的很感激詳細的迴應。我希望我能給這1000個贊成票。 – Chris 2013-03-08 16:24:16