0

好的,这对我来说有点棘手,我真的需要一些帮助来解决它。

问题

我有一个包含数据列表的 GSpreadsheet,在这种情况下是 Twitter 用户名。使用服务提供商的 API(在本例中为 Klout API),我想检索有关该用户的信息以填充电子表格中的单元格。

根据我到目前为止的工作,我需要编写一个自定义函数来执行此操作,但我不知道从哪里开始,如何构建它,或者是否有任何这样做的示例。

设想

Klout API 可以根据传递的字符串返回 XML 或 JSON 响应(请参阅http://developer.klout.com/docs/read/api/API )。例如,网址:

http://api.klout.com/1/users/show.xml?key=SECRET&users=thewinchesterau

将返回以下 XML 响应:

<用户>
    <用户>
        <twitter_id>17439480</twitter_id>
        <twitter_screen_name>温彻斯特劳</twitter_screen_name>
        <分数>
            <kcore>56.63</kcore>
            <坡度>0</坡度>
            <description>创建在整个网络中传播的内容并推动讨论。</description>
            <kclass_id>10</kclass_id>
            <kclass>社交者</kclass>
            <kclass_description>你是社交场景的中心,人们指望你找出正在发生的事情。您可以快速与人建立联系并随时分享您的社交知识。您的追随者感谢您的人脉和慷慨。</kclass_description>
            <kscore_description>thewinchesterau 的影响力很小。</kscore_description>
            <network_score>58.06</network_score>
            <amplification_score>29.16</amplification_score>
            <true_reach>90</true_reach>
            <delta_1day>0.3</delta_1day>
            <delta_5day>0.5</delta_5day>
        </score>
    </用户>
</用户>

基于此响应,我希望能够使用 XML(或 JSON,如果更简单)数据包中返回的值填充不同的单元格。

因此,例如,我将有一个如下所示的电子表格,该电子表格将具有自定义函数来检索相关 XML 元素响应的值以填充单元格:

单元格 ABCDE
1 用户名 kscore 网络分数 放大分数 真实到达
2 温彻斯特 =kscore(A2) =nscore(A2) =ascore(A2) =tscore(A2)

问题

  1. 您是否知道任何使用 API 从外部源提取数据的 gSpreadsheet 示例?
  2. 如何编写自定义函数来从 API 获取结果并使用特定元素的结果填充单元格?

非常感谢您提供的任何信息、示例或帮助者。

4

2 回答 2

1

您想要这里importXML记录的功能。你想要的公式看起来像这样:

=importXML("http://api.klout.com/1/users/show.xml?key=SECRET&users=" + A1, "//users/user/score/kscore")
于 2011-04-18T05:06:08.197 回答
0

您可以使用 Google AppScript 编写自定义脚本,但有一个类似于 Nick Johnson 发布的简单解决方案。我已经针对 score 函数对此进行了测试,但它可以很容易地适应具有不同 XPath 的 show 端点。

=importXML("http://api.klout.com/1/klout.xml?users="&A1&"&key=YOUR_API_KEY", "//users/user/kscore")

这假定您的 Twitter ID 在 A 列中。

请注意,Google Docs 将此类 importXML 函数的数量限制为每个电子表格 50 个。您可以为每个 importXML 调用连接 5 个用户 ID 组,有效地将您的限制设置为 250 个工作表。

这也可以适应 Excel 中没有该限制的类似调用。不过,请记住 Klout ToS,使用适当的归因和速率限制。

于 2011-08-11T21:06:29.083 回答