私はこのコードを使用しています:
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と他の成功を試みましたが、成功しませんでした。
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.
}
}
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