Twig-从twitter API循环浏览tweet文本


Twig - Looping through tweet text from twitter API

我正在使用Abraham的TwitterOAuth库和Twig来构建一个迷你应用程序,用户可以在该应用程序中授权,然后根据输入搜索推文。

我可以成功地将API的返回转储到我的页面,但当我试图仅隔离每个返回的推文的推文文本时,我就没有运气了。

以下是我的dashboard.php文件的相关代码:

$user = $connection->get("account/verify_credentials");
if(isset($_POST['query'])) {
    $query = $_POST['query'];
    $statuses = $connection->get("search/tweets", array("q" => "$query"));
    echo $twig->render("dashboard.html", array("access_token" => $access_token, "user" => $user, "statuses" => $statuses));
  } else {
    echo $twig->render("dashboard.html", array("access_token" => $access_token, "user" => $user));    
  }

然后我的小树枝模板中的问题代码

{% if statuses %}
<ul>
  {% for status in statuses %}
  <li>{{ statuses.text|e }}</li>
  {% endfor %}
</ul>
{{ dump(statuses) }}
{% endif %}

{{dump(status)}}可以工作,但UL内部没有任何内容。我对这一切都很陌生,所以我一直在看Abraham的示例代码,他在这里做的是:

{% if user.status %}
    {{ user.status.text }}
{% else %}
    {{ user.description }}
{% endif %}

所以我想我也可以做同样的事情,但这对我不起作用。我错过了什么?

我通过比较GET帐户/verify_credentials(在Abraham的用户代码中发送的请求)和GET搜索/tweets的示例响应,找到了答案。

如果你比较响应的开头,你会注意到搜索/推特响应需要遍历一个额外的级别。

因此,与其这么做:

{% for status in statuses %}
  <li>{{ statuses.text|e }}</li>
{% endfor %}

我做到了:

{% for status in statuses.statuses %}
  <li>{{ statuses.text|e }}</li>
{% endfor %}

我意识到那里的命名不太好,但对于像我这样的其他新手来说,要把它分解一下:第一个"状态"是我发送给tridge的变量,第二个"状态"来自我从API得到的响应。

在我最初的代码中,没有什么可以循环的,因为我还没有深入到各个推文的信息,我基本上是在尝试循环浏览父推文。