Получить GIF / видео из моего любимого твита и показать его на веб-странице через API

Моя цель : Показать на веб-странице все гифки / видео в моем любимом твите

Для этого я использую API REST для Twitter а также этот класс php (TwitterAPIExchange.php)

Код для получения моего любимого твита, распечатывает текст каждого из моих любимых твитов

require_once('TwitterAPIExchange.php');$settings = array(
'oauth_access_token' => "XXXXXXX",
'oauth_access_token_secret' => "XXXXXXX",
'consumer_key' => "XXXXXXX",
'consumer_secret' => "XXXXXXX");

$url = 'https://api.twitter.com/1.1/favorites/list.json';
$getfield = '?count=200&screen_name=XXXXX&include_entities=false';

$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);

$result = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();

$result_array = json_decode($result , true);

for($i = 0 ; $i < count($result_array) ; $i++){
echo $result_array[$i]["text"]."<br><br>";
}

Теперь я должен экстраполировать http-адрес каждого GIF-файла / видео (и для этого у меня нет проблем) и просматривать его, проблема в том, что адрес GIF-видео / видео не указывает непосредственно на GIF / видео

ОБНОВЛЕНИЕ 1

Теперь я попробовал это:

$url = 'https://api.twitter.com/1.1/favorites/list.json';
$getfield = '?count=200&screen_name=XXXXX&include_entities=true';
.....
.....
$app_video = array();
for($i = 0 ; $i < count($result_array) ; $i++){
array_push($app_video, $result_array[$i]["entities"]["urls"][0]["expanded_url"]);
}

получить массив со ссылками на все видео

ОБНОВЛЕНИЕ 2

Теперь после экстраполированной ссылки на все видео (обновление 1), с file_get_contents и используя DomDocument , я экстраполировал

<video> <source ...> </ video>

со страницы.

ОБНОВЛЕНИЕ 3

Это мое окончательное решение

require_once('TwitterAPIExchange.php');$settings = array(
'oauth_access_token' => "XXXXXX",
'oauth_access_token_secret' => "XXXXXX",
'consumer_key' => "XXXXXX",
'consumer_secret' => "XXXXXX");

$url = 'https://api.twitter.com/1.1/favorites/list.json';
$getfield = '?count=200&screen_name=XXXXX&include_entities=true';

$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);

$result = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();

$result_array = json_decode($result , true);for($i = 0 ; $i < count($result_array) ; $i++){

$link = $result_array[$i]["entities"]["urls"][0]["expanded_url"];

if(strpos($link,"twitter.com") !== false){

$pageContent = file_get_contents($link , true);

@$dom = new DOMDocument;
@$dom->loadHTML($pageContent);

$p = $dom->getElementsByTagName('video')->item(0);
$source = $p->getElementsByTagName('source');

$src = $source->item(0)->getAttribute("video-src");echo '<video name="media" loop="true" autoplay="true" src="'.$src.'">';
echo '<source video-src="'.$src.'" type="video/mp4" class="source-mp4" src="'.$src.'">';
echo '</video>';

}

}function get_inner_html( $node ) {
$innerHTML= '';
$children = $node->childNodes;
foreach ($children as $child) {
$innerHTML .= $child->ownerDocument->saveXML( $child );
}
return $innerHTML;
}

Это решение работает, но я думаю, что могу сделать лучше. Таким образом, я должен загружать каждую страницу каждого твита, и, конечно, этот метод очень медленный.


2

Решение

Вы когда-нибудь слышали о трубах Yahoo? Это довольно крутой, быстрый и простой способ получить информацию о сайте. После того, как вы настроили свои каналы, вы можете просто прочитать rss / json, который Yahoo дает вам. Я знаю, что это не реальный ответ, потому что вы просто передаете сборщик информации, но в конце ваш код будет намного быстрее и проще. Я бы написал это как комментарий, но, к сожалению, stackoverflow не позволяет оставлять комментарии ниже 50 репутации.

https://pipes.yahoo.com/pipes/

0

Другие решения

Я бы предложил не использовать API, а вместо этого использовать CURL, чтобы сделать запрос на ваш список избранного в твиттере. Я думаю, что если вы можете выполнить запрос curl и получить html страницы, вы можете отфильтровать его до исходного кода и воссоздать на новой странице.

информация о php и cURL: http://php.net/manual/en/book.curl.php
страницу, чтобы очистить cUrl: https://twitter.com/favorites

0

По вопросам рекламы [email protected]