如何使用Twitter API从推文中获取图片网址

Gus*_*edo 18 twitter url image

我正在使用此代码:

require_once ("twitteroauth.php");

define('CONSUMER_KEY', 'XXX');
define('CONSUMER_SECRET', 'XXX');
define('ACCESS_TOKEN', 'XXX');
define('ACCESS_TOKEN_SECRET', 'XXX');

$toa = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);

$query = array(
  "q" => "#Misiones",
  "result_type" => "recent",
  "include_entities" => "true"
);

results = $toa->get('search/tweets', $query);

foreach ($results->statuses as $result) {

  $user = $result->user->screen_name;
  $text = $result->text;
Run Code Online (Sandbox Code Playgroud)

要获取推文标签#Misiones(我住的地方的名称).工作正常,但我正在尝试获取图像网址(如果推文有一些).
我尝试使用$ result-> media和$ result-> media-> media_url和其他成功而没有成功.

小智 37

Tweet实体是您正在寻找访问图片.实体提供来自推文的结构化数据,包括扩展的URL和媒体URL.它们位于entitiesTwitter REST和Streaming API的所有Tweet对象的属性下.

因此,要回答您的问题,如果推文包含一张图片,其网址将位于此处:

$media_url = $result->entities->media[0]->media_url;
Run Code Online (Sandbox Code Playgroud)

下面是一个可以添加到现有foreach循环的PHP代码段,它可以更精细地处理Tweet是否包含媒体URL:

if (isset($result->entities->media)) {
    foreach ($result->entities->media as $media) {
        $media_url = $media->media_url; // Or $media->media_url_https for the SSL version.
    }
}
Run Code Online (Sandbox Code Playgroud)


chr*_*stk 10

要使用新的 v2 api 获取推文的图像 url,您必须附加expansions=attachments.media_keys&media.fields=url到您的 url 中。例如,要打开一个返回推文及其图像(如果有)的流,请创建一个像这样的 get 请求

https://api.twitter.com/2/tweets/search/stream?tweet.fields=created_at&expansions=attachments.media_keys&media.fields=url


Ned*_*ajz 6

要使media_url返回Twitter搜索,请通过tweet_mode=extended。跨多个端点工作(例如/ statuses / show,/ statuses / user_timeline ..)

例: https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=aneon&tweet_mode=extended

此处更多内容:https : //developer.twitter.com/zh-CN/docs/tweets/tweet-updates.html