【问题标题】:Twig - Looping through tweet text from twitter APITwig - 循环浏览来自 twitter API 的推文文本
【发布时间】:2015-04-10 10:18:24
【问题描述】:

我正在使用Abraham's TwitterOAuth library 和 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(statuses) }} 有效,但在 UL 内没有吐出任何内容。我对这一切都很陌生,所以我一直在看亚伯拉罕的示例代码here,他在哪里这样做:

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

所以我想我可以做同样的事情,但它不适合我。我错过了什么?

【问题讨论】:

    标签: php twitter twig twitter-oauth


    【解决方案1】:

    嗯,我通过比较来自GET account/verify_credentials(在亚伯拉罕的用户代码中发送的请求)和GET search/tweets 的示例响应找到了答案。

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

    所以不要这样做:

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

    我做到了:

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

    我意识到那里的命名不是很好,但是为了像我这样的任何其他新手分解它:第一个“状态”是我发送给 twig 的变量,第二个“状态”来自我的响应从 API 获取。

    在我的原始代码中,没有任何东西可以循环,因为我没有深入了解各个推文的信息,我基本上是在尝试循环通过父级。

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      • 1970-01-01
      • 1970-01-01
      • 2019-03-18
      相关资源
      最近更新 更多