1

我正在构建一个网站,并且我正在使用 Twitter API 来显示来自用户推文的数据。它工作正常,但所有推文都以纯文本形式检索。这意味着,与 Twitter 网站不同,所有链接都是纯文本,没有@names 是链接,并且主题标签是完全静态的。

我会假设 Twitter 使用正则表达式提取这些元素,但我不仅不擅长正则表达式,而且我希望结果尽可能接近 Twitter 的实现。有没有办法从 Twitter API 本身中提取这些?如果没有,我怎么能尽可能接近 Twitter 的解析?

4

2 回答 2

4

Tweet Entities。您可以将参数添加&tweet_entities=1到某些 REST 调用的末尾。JSON 响应将包括您寻找的归因于推文的额外属性。

IE

urls 实体

从推文文本中提取的 URL 数组。每个 URL 实体都带有以下属性: url 、 display_url、expanded_url、indices

 "text": "Twitter for Mac is now easier and faster, and you can open multiple windows at once http://t.co/0JG5Mcq",
    "entities": {
      "media": [
      ],
      "urls": [
        {
          "url": "http://t.co/0JG5Mcq",
          "display_url": "blog.twitter.com/2011/05/twitte…",
          "expanded_url": "http://blog.twitter.com/2011/05/twitter-for-mac-update.html",
          "indices": [
            84,
            103
          ]
        }
      ],
      "user_mentions": [
      ],
      "hashtags": [
      ]
    }

主题标签实体

从推文文本中提取的一系列标签。每个 Hashtag 实体都具有以下属性:

text
Hashtag 文本索引
Hashtag 从中提取的字符位置

    "text": "Loved #devnestSF"
>     "entities": {
>       "media": [
>       ],
>       "urls": [
>       ],
>       "user_mentions": [
>       ],
>       "hashtags": [
>         "text": "devnestSF"
>         "indices": [
>           6,
>           16
>         ]
>       ]
>     }

user_mentions 实体

从推文文本中提取的一组 Twitter 屏幕名称。每个用户实体都带有以下属性:

id
用户 ID(int 格式) id_str 用户 ID(字符串格式) screen_name
用户屏幕名称 name
用户全名索引
提取用户提及的字符位置

"text": "@rno Et demi!"
    "entities": {
      "media": [
      ],
      "urls": [
      ],
      "user_mentions": [
        {
          "id": 22548447,
          "id_str": "22548447",
          "screen_name": "rno",
          "name": "Arnaud Meunier",
          "indices": [
            0,
            4
          ]
        }
      ],
      "hashtags": [
      ]
    }

此链接上的更多推文实体:

https://dev.twitter.com/docs/tweet-entities

于 2012-07-22T05:06:29.223 回答
0

我相信这就是您正在寻找的:

https://dev.twitter.com/docs/api/1/get/statuses/oembed

于 2012-07-20T22:38:43.260 回答