如果我在这里缺少一些基本的东西,请原谅我的无知,但是在将他们的Twitter API调用更新为1.1之后,我正试图将最后一条推文打印到客户的主页,我能够做到这一点,但它不包括实体似乎默认情况下。它会抛出纯文本而没有围绕主题标签和URL的链接。我在这里错过了什么吗?
require_once 'twitteroauth.php';
$twitterConnection = new TwitterOAuth(
'XXX', // Consumer Key
'XXX', // Consumer secret
'XXX', // Access token
'XXX' // Access token secret
);
$twitterData = $twitterConnection->get(
'statuses/user_timeline',
array(
'screen_name' => 'XXX',
'count' => 1,
'exclude_replies' => true
)
);
if($twitterConnection->http_code != 200)
{
$twitterData = get_transient($transName);
}
// Save our new transient.
set_transient($transName, $twitterData, 60 * $cacheTime);
foreach($twitterData as $tweets)
{
return $tweets->text;
}
答案 0 :(得分:0)
主要是因为这是你在你写的return $tweets->text;
text
几乎只是推文的字符串值。如果您希望链接的主题标签,则必须迭代$tweets->hashtags
的值。它是一个对象数组,其中$tweets->hastags[0]->text
是推文中存在的第一个#标签的文本值,而$tweets->hashtags[0]->indices
返回一个指定位置(开始,停止)的[9,15]
形式的数组标签中的#标签及其文本值。
这是一些伪代码,用于说明如何处理您的请求:
foreach($twitterData as $tweet) {
$text = $tweet->text;
foreach($tweet->hashtag as $hashtag) {
$searchString = $hashtag->text;
$text = linkify($text,$searchString,$hashtag->indices);
}
}
linkify
只需添加类似于<a href="http://twitter.com/search?q='$searchString&src=hash'">
和</a>
的内容,具体取决于您希望如何处理链接,分别位于index [0]和indices [1]位置。
当然,您可以说使用正则表达式来过滤使用#(a-z_)\w+
进行过滤会更加简单,如此处所述https://stackoverflow.com/a/15540967/1882885,将其替换为与我上面所写的类似形式的网址
我希望这会有所帮助。