web-dev-qa-db-ja.com

Twitter APIを使用してツイートから画像のURLを取得する方法

私はこのコードを使用しています:

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;

ハッシュタグ#Misiones(私が住んでいる場所の名前)でツイートを取得する。正常に動作しますが、画像のURLを取得しようとしています(ツイートにいくつかある場合)。
私は$ result-> mediaと$ result-> media-> media_urlと他の成功を試みましたが、成功しませんでした。

20
Gus Carracedo

Tweet Entities は、写真にアクセスするために探しているものです。エンティティは、拡張URLやメディアURLを含むツイートからの構造化データを提供します。これらは、Twitter RESTおよびストリーミングAPIの両方からのすべてのツイートオブジェクトのentities属性の下にあります。

その結果、質問に答えるために、ツイートに1つの画像が含まれている場合、そのURLは次の場所にあります。

$media_url = $result->entities->media[0]->media_url;

以下は、既存のforeachループに追加できるPHPスニペットです。ツイートにメディア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.
    }
}
37
Romain Huet

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/en/docs/tweets/Tweet-updates.html

5
Nedvajz