Php Twitter REST API:可以热链接Twitter图像吗?为什么Firefox中没有图像显示?
我试图从TwitterRESTAPI中提取图像并显示这些图像 我的PHP/HTML代码没有在本地主机PHP内置开发服务器的浏览器中显示图像,这使我陷入了逻辑僵局。我更喜欢Firefox作为更安全的(私有)浏览器,所以我首先在Firefox中开发 我认为图像不显示的问题可能是Twitter不允许热链接到他们的图像的问题,但是我刚刚在Chrome和InternetExplorer浏览器中测试了相同的代码(如下),所有的图像看起来都很好 因此,我的[更新]问题是:为什么这些图像没有出现在Firefox或Firefox开发者版浏览器中?Twitter显然不存在通过API提取图片的热链接问题,Chrome浏览器和InternetExplorer浏览器中的图片都显示得很好 谁能回答这个有趣的问题Php Twitter REST API:可以热链接Twitter图像吗?为什么Firefox中没有图像显示?,php,html,twitter,twitter-oauth,Php,Html,Twitter,Twitter Oauth,我试图从TwitterRESTAPI中提取图像并显示这些图像 我的PHP/HTML代码没有在本地主机PHP内置开发服务器的浏览器中显示图像,这使我陷入了逻辑僵局。我更喜欢Firefox作为更安全的(私有)浏览器,所以我首先在Firefox中开发 我认为图像不显示的问题可能是Twitter不允许热链接到他们的图像的问题,但是我刚刚在Chrome和InternetExplorer浏览器中测试了相同的代码(如下),所有的图像看起来都很好 因此,我的[更新]问题是:为什么这些图像没有出现在Firefox
<!DOCTYPE html>
<html lang="en">
<head>
<?php
// USED TO DEBUG WHY HTTPS WAS NOT WORKING IN THE BEGINNING
// var_dump(stream_get_wrappers());
?>
<?php
// REQUIRE TWITTEROAUTH LIBRARY
require "twitteroauth/autoload.php";
// I HAVE HACKED AROUND WITH THIS, BUT DON'T SEE WHY ABRAHAM IS NECESSARY SINCE THERE IS NO FOLDER NAMED ABRAHAM,
// BUT CODE DOES NOT WORK WITHOUT THIS, SO LEAVE IT IN! :)
use Abraham\TwitterOAuth\TwitterOAuth;
// DECLARE VARIABLES OF KEYS, SECRET, TOKEN, & TOKEN_SECRET
$CONSUMER_KEY = "12345";
$CONSUMER_SECRET = "12345";
$access_token = "12345";
$access_token_secret = "12345"
// DEFINE NEW CONNECTION VARIABLE: I.E. CONNECTION TO TWITTER VIA TWITTEROAUTH
$connection = new TwitterOAuth($CONSUMER_KEY, $CONSUMER_SECRET, $access_token, $access_token_secret);
// CREATE MULTIPLE-PARAMETER QUERY AS ARRAY
$query = array(
"q" => "#MickeyMouse",
"count" => "1000",
"include_entities" => "true"
);
// MAKE CONNECTION TO TWITTER, GET METHOD FOR "SEARCH/TWEETS", PASS ARRAY AS QUERY
$result = $connection->get("search/tweets", $query);
// TEST OUTPUT FOR DEBUGGING
//var_dump($result);
// CREATE VARIABLES: NEW EMPTY ARRAYS
$ArrayPhotoURLs = array();
// FOR LOOP,
foreach ($result->statuses as $content) {
// IF EACH TWEET/STATUS HAS MEDIA,
if (isset($content->entities->media)) {
// THEN GET THOSE MEDIA URLS
foreach ($content->entities->media as $media) {
$media_url = $media->media_url; // Or $media->media_url_https for the SSL version.
// AND ASSIGN/APPEND EACH MEDIA URL TO THE ARRAY OF MEDIA URLs
$ArrayPhotoURLs[] = $media_url;
// TEST OUTPUT FOR DEBUGGING
//print(gettype($media_url));
//print_r($media_url);
//var_dump($media_url);
}
}
}
// TEST OUTPUT FOR DEBUGGING
//var_dump($ArrayPhotoURLs);
// COUNT IMAGES IN ARRAY OF TWITTER IMAGE URLS - TO BE USED BELOW TO CREATE DYNAMIC LIST / ANCHOR / IMG ITEMS
$imagecount = count($ArrayPhotoURLs);
// TEST OUTPUT FOR DEBUGGING
echo $imagecount;
?>
</head>
<?php // HTML LAYOUT CODE BEGINS HERE ?>
<body style="">
<div class="container">
<div>
<?php
// FOR LOOP, PRINT HTML WITH URL AS BOTH A HREF & IMG SRC PARAMETERS & ANCHOR TEXT
foreach ($ArrayPhotoURLs as $PhotoURL) {
echo '<a href="', $PhotoURL ,'">',
'<img src="',$PhotoURL, '">', $PhotoURL,
'</img></a><br/>';
}
?>
</div>
</div>
</body>
</html>
对于处于类似绑定的用户:
Firefox显然将域名pbs.twimg.com视为跟踪器,并阻止与该子域的所有连接。在浏览器中考虑禁用跟踪保护,或者实现服务器端垫片来预加载图像。
见: