1

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

2 回答 2

2

查看 Twitter 的API 文档了解此方法:

此方法不得用作呈现给应用程序用户的图像源 URL。

此方法不返回图像数据,而是返回 HTTP 302 Redirect 标头,将 HTTP 请求重定向到新源。这不起作用,也不应该起作用。

另外,请注意您使用的是 Twitter API 的 v1,该 API 已被弃用,并且可能随时停止工作。查看 API v1.1 的users/show方法。

于 2013-04-07T07:58:58.687 回答
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 会有很大帮助。

于 2013-04-07T07:33:58.357 回答