如何使用Twitter API 1.1获取用户图像?

Ste*_*ffi 24 php twitter

在API 1.0中,我们可以使用 users/profile_image/:screen_name

例如 : http://api.twitter.com/1/users/profile_image/EA_FIFA_FRANCE

但是,它在API 1.1中不再起作用.

请问有解决方案吗?

Jim*_*mbo 34

用户的个人资料图片

好的,所以你想要一个用户的个人资料图片.您将需要查看twitter REST API 1.1文档.这是您可以对其API进行的所有不同请求的列表(不用担心,我将在稍后介绍您实际执行此操作的方式).

有多种方法可以获取用户的个人资料图像,但最值得注意的是:users/show.根据这个文档,用户/ show方法:

返回有关由所需user_id或screen_name参数指定的用户的各种信息.作者的最新推文将在可能的情况下以内联方式返回.

那么,用户个人资料图片必须在某处,对吗?

让我们看看使用users/show url对此信息的请求的典型响应(我们将使用我的个人资料作为示例).

来自twitter 1.1 api的用户/节目的示例响应

我从底部切断了一些,因为有很多数据要经过.最重要的是,你会看到你需要的东西:

profile_image_url键

这是您需要访问的profile_image_url键.

那么,你怎么做这一切?实际上,它非常简单.

经过身份验证的请求

正如您正确指出的那样,截至2013年6月11日,您无法再生成未经身份验证的请求或任何1.0 API,因为它已经停用.因此,OAuth是向1.1 API发出请求的方式.

我写了一个堆栈溢出帖子,旨在帮助你们所有人对1.1 API进行经过身份验证的请求,而不费吹灰之力.

当您使用它时,您将获得上面看到的响应.按照帖子说明,一步一步,您可以在这里获取库(您只需要在项目中包含一个文件).

基本上,上一篇文章解释说您需要执行以下操作:

  • 创建一个Twitter开发者帐户
  • 从twitter获取一组独特的键(总共4个键).
  • 将应用程序设置为具有读/写访问权限
  • 包括TwitterApiExchange.php(图书馆)
  • 将您的密钥放在一个$settings数组中
  • 从文档中选择您的URL和请求方法(发布/获取)(我把链接放在上面!)
  • 提出要求,就是这样!

一个实际的例子

我假设您按照上面帖子中的分步说明(包含漂亮的彩色图片).这是您用来获得所需内容的代码.

// Require the library file, obviously
require_once('TwitterAPIExchange.php');

// Set up your settings with the keys you get from the dev site
$settings = array(
    'oauth_access_token' => "YOUR_ACCESS_TOKEN",
    'oauth_access_token_secret' => "YOUR_ACCESS_TOKEN_SECRET",
    'consumer_key' => "YOUR_CONSUMER_KEY",
    'consumer_secret' => "YOUR_CONSUMER_SECRET"
);

// Chooose the url you want from the docs, this is the users/show
$url = 'https://api.twitter.com/1.1/users/show.json';
// The request method, according to the docs, is GET, not POST
$requestMethod = 'GET';

// Set up your get string, we're using my screen name here
$getfield = '?screen_name=j7mbo';

// Create the object
$twitter = new TwitterAPIExchange($settings);

// Make the request and get the response into the $json variable
$json =  $twitter->setGetfield($getfield)
                 ->buildOauth($url, $requestMethod)
                 ->performRequest();

// It's json, so decode it into an array
$result = json_decode($json);

// Access the profile_image_url element in the array
echo $result->profile_image_url;
Run Code Online (Sandbox Code Playgroud)

这就是它!非常简单.还有用户/查找有效地做同样的事情,但你可以:

返回完全水合的用户对象,每个请求最多100个用户,由传递给user_id和/或screen_name参数的逗号分隔值指定.

如果您需要获取多个用户的详细信息,请使用该信息,但由于您只需要一个用户的详细信息,请使用上述用户/ show.

我希望清理一下!