【问题标题】:Implement monkehTweets on Coldfusion Server在 Coldfusion 服务器上实现monkeyhTweets
【发布时间】:2013-03-08 03:03:18
【问题描述】:

我继承了一个运行 Coldfusion 的网站,我正在尝试在该网站上获取 Twitter 提要。我找到了一个似乎可以完成这项工作的工具,并且我已经在 Twitter 上注册了我的应用程序,并且我有我的客户端和 OAuth 代码。

问题是我对 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 的人提供的任何帮助。谢谢!

【问题讨论】:

  • 请务必阅读安装包安装文件夹中的monkeyhTweets_readMe.pdf。更多信息和有用的链接可以在这里找到:mattgifford.co.uk/monkehtweets-coldfusion-twitter-cfc-update
  • 我隐约记得,monkeyhtweets 包可能有一个更新,它解决了连接到更新的 twitter api/oauth 的问题。
  • @AndreasSchuldhaus 就我的连接而言,我的一切工作正常。我的问题在于我对 Coldfusion 的无能。我熟悉基础知识(cfincludes、cfif/else 等),但我以前从未使用过 cfc 文件。在实际输出推文时,我应该将什么代码放入我的 .cfm 文件中?我阅读了所有文档,但找不到类似“如果您想获取最近的推文流,请在您希望它们出现的位置添加 codecodecode”之类的内容。
  • 好的,所以您的问题更多的是“我如何在 ColdFusion 中使用 CFC”,恐怕答案可能是 - 非常合理 - RTFM。所有 CFML 以及有关如何使用 CFC 的大量指导都在在线文档中:help.adobe.com/en_US/ColdFusion/10.0/Developing/…。我建议您放弃这项特定任务,并首先专注于快速掌握 CFML。
  • 嗨 paperbeatsscissors。我写了monkeyhTweets,可以帮助你解决你的问题——这似乎不是StackOverflow的问题,我很乐意帮助你。不过,我首先要提供的一点建议是查看monkehTweet 包中的代码。实际的monkeyhTweet.cfc 对象被大量注释,其中包含向API 发送值所需的所有参数/参数的提示属性。如果您在实际输出数据方面需要帮助,请通过我网站上的评论表给我留言,我将通过电子邮件为您提供帮助。非常感谢

标签: twitter coldfusion


【解决方案1】:

我编写了一个非常基本的演示,用于从经过身份验证的用户的时间轴中提取和显示信息。

您需要从对象实例化开始,看起来您已经完成了:(显然,将您自己的 OAuth / Twitter 详细信息添加到 init 方法中)

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

parseResults 值设置为 true 会将响应转换为结构或 XML 对象,您可以将其转储到 ColdFusion 中并轻松读取值。

接下来,调用 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[tweet]。 MonkehTweet 对象包含一个名为 entify 的辅助函数,它将任何 URL、用户提及和主题标签转换为 HTML URL 以供显示。只需传入推文对象,它就会为您返回格式化的状态。您还可以直接引用响应中的任何对象,就像我们在此处使用用户名值一样。

要查看返回的内容,最好将整个响应转储出来,以便在显示中查看可访问和使用的内容:

<cfdump var="#arrStatus#" />

我希望这可以帮助您启动和运行。

【讨论】:

  • 哇,非常感谢!这正是我想要做的!非常感谢详细的回复。我希望我能给这 1,000 票。
猜你喜欢
  • 2014-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-05
  • 2011-12-01
  • 2016-04-16
相关资源
最近更新 更多