试图从Twitter获取个人资料图片,这个代码有什么问题?

时间:2013-04-07 07:16:44

标签: php twitter

我写了这段代码,它运行但是没有为我返回个人资料图片。我仔细检查了获取图片的网址。我到底哪里出错了? 我还希望返回的图片大小为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>

2 个答案:

答案 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会有很大帮助。