我写了这段代码,它运行但是没有为我返回个人资料图片。我仔细检查了获取图片的网址。我到底哪里出错了? 我还希望返回的图片大小为150x150px。如何显示自定义尺寸。谢谢!
<?php
define('BASE_URL', 'http://api.twitter.com/1/users/profile_image/screen_name=');
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$handle = $_POST['handle'];
$size = 'bigger';
if (isset($handle) && isset($size)) {
$twitterURL = BASE_URL . $handle . '&size=' . $size;
}
}
?>
<!DOCTYPE HTML>
<html lang="it-IT">
<head>
<meta charset="UTF-8">
<title>Get TwitterPic</title>
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:200' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="wrapper">
<h1>Get image from twitter</h1>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<p><label for="handle">Twitter Handle</label>
<input type="text" id="twitter" name="handle" placeholder="Twitter Handle"></p>
<p><input type="submit" value="Get Twitter Pic"></p>
</form>
<?php if (isset($size) && isset($twitterURL)): ?>
<img src="<?= $twitterURL ?>">
<?php endif; ?>
</div>
</body>
</html>
答案 0 :(得分:2)
查看推特API documentation获取此方法的信息:
此方法不得用作呈现给应用程序用户的图像源URL。
此方法不返回图像数据,而是返回HTTP 302重定向标头,将HTTP请求重定向到新源。这不会起作用,也不应该起作用。
另请注意,您正在使用Twitter API的v1,该API已被弃用,可能随时停止工作。查看API v1.1的users/show方法。
答案 1 :(得分:0)
首先我很好奇,因为它应该有效。然后我在你的代码中发现了多个问题。
你必须使用https://dev.twitter.com/docs/api/1/get/users/profile_image/:screen_name
此代码必须更改,您的变量名称错误:
<?php if (isset($size) && isset($twitterURL)): ?>
<img src="<?= $twitterURL ?>">
<?php endif; ?>
如果您无法使用可防止这种情况发生的现代IDE,那么在开发过程中使用error_level = ALL会有很大帮助。