簡體   English   中英

為什么Twitter的1.1 API不在我的推文中包含實體?

[英]Why is Twitter's 1.1 API not including entities in my tweets?

如果我在這里遺漏了一些基本信息,請原諒我們的無知,但在將其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;
}

主要是因為這就是您在編寫代碼時告訴它要做的事情return $tweets->text;

text幾乎只是tweet的字符串值。 如果要鏈接的主題標簽,則必須迭代$tweets->hashtags的值。 它是一個對象數組,其中$tweets->hastags[0]->text是tweet中存在的第一個主題標簽的文本值, $tweets->hashtags[0]->indices返回格式為[9,15] $tweets->hashtags[0]->indices的數組[9,15] ,用於指定主題標簽的位置(開始,停止)及其在tweet中的文本值。

這是一些偽代碼,以顯示如何處理您的請求:

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> ,具體取決於您要如何處理鏈接分別為[0]和索引[1]。

當然,您可能會爭辯說,使用正則表達式使用#(a-z_)\\w+進行過濾要簡單得多,如此處https://stackoverflow.com/a/15540967/1882885所述 ,將其替換為url與我上面寫的類似。

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM