2013-03-08 93 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