在 API 1.0 中,我们可以使用users/profile_image/:screen_name
例如 :http://api.twitter.com/1/users/profile_image/EA_FIFA_FRANCE
但是,它在API 1.1中不再起作用。
请问你有解决办法吗?
您还可以通过调用这种 url 来获取 twitter 个人资料图片:
https://twitter.com/[screen_name]/profile_image?size=original
例如:https ://twitter.com/VancityReynolds/profile_image?size=original
从这篇文章中得到信息:
https://twittercommunity.com/t/how-to-get-user-image-original-size-with-api-1-1/10187/14
好的,所以您需要用户的个人资料图片。您将需要查看twitter REST API 1.1 文档。这是您可以对他们的 API 发出的所有不同请求的列表(别担心,稍后我会介绍您如何实际执行此操作)。
有多种方法可以获取用户的头像,但最值得注意的一种是:users/show。根据文档, users/show 方法:
返回由必需的 user_id 或 screen_name 参数指定的有关用户的各种信息。作者的最新推文将尽可能内联返回。
好吧,用户个人资料图像必须在某个地方,对吗?
让我们看一下对该信息请求的典型响应,使用 users/show url(我们将使用我的个人资料作为示例)。
我已经从底部切掉了一些,因为有很多数据要经过。最重要的是,你会看到你需要什么:
这是您需要访问的profile_image_url键。
那么,你是如何做到这一切的呢?实际上,这很简单。
正如您正确指出的那样,截至 2013 年 6 月 11 日,您不能再向 1.0 API 发出未经身份验证的请求或任何请求,因为它已被淘汰。所以 OAuth 是向 1.1 API 发出请求的方式。
我写了一篇堆栈溢出帖子,目的是帮助大家毫不费力地向 1.1 API 发出经过身份验证的请求。
当你使用它时,你会得到上面看到的响应。按照帖子的说明,一步一步地,你可以在这里获取库(你只需要在你的项目中包含一个文件)。
基本上,上一篇文章解释了您需要执行以下操作:
$settings
数组中我将假设您按照上述帖子中的分步说明进行操作(包含漂亮的彩色图片)。这是您用来获得所需内容的代码。
// 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;
差不多就是这样!非常简单。还有用户/查找有效地做同样的事情,但你可以:
根据传递给 user_id 和/或 screen_name 参数的逗号分隔值指定,为每个请求返回最多 100 个用户的完全水合用户对象。
如果您需要获取多个用户的详细信息,请使用它,但由于您只需要一个用户的详细信息,请使用 users/show 如上所述。
我希望能把事情弄清楚一点!
您说您想使用 Twitter API 1.1,但您不想验证您的请求。 API v1.1 不支持未经身份验证的请求。所以请适应 API 的变化。查看更新:
您可以从请求profile_image_url
字段中获取图像。此方法需要https://api.twitter.com/1.1/users/show.json
aid
或。screen_name
例如 :
GET https://api.twitter.com/1.1/users/show.json?screen_name=rsarver
在此处查看详细信息https://dev.twitter.com/docs/api/1.1/get/users/show
正如之前的答案和评论指出的那样:
选择任意两个;这三个都是不行的。@Jimbo 的答案是正确的(以及正确的方法),但不包括#3。扔掉#1意味着时光倒流。但是,我们可以扔掉#2,直接去源码:
curl -s https://twitter.com/EA_FIFA_FRANCE |
sed -ne 's/^.*ProfileAvatar-image.*\(https:[^"]*\).*$/\1/p'
该sed
命令只是说,找到包含“ProfileAvatar-image”的行并打印看起来像引用 URL 的子字符串。
这不如经过身份验证的 API 调用稳定,因为 Twitter 可能随时更改其 HTML,但它比处理 OAuth 更容易,而且没有官方速率限制!
PHP翻译应该很简单。
我尝试上述方法来获取配置文件 URL,但它对我不起作用。我认为是因为 Twitter 将 API v1.1 更改为 API v2.0。
我找到了一种获取个人资料 URL 的简单方法。
我在那里使用 Twitter API v2 User Lookup -> User by Username API 部分
代码示例:
https://api.twitter.com/2/users/by/username/{user_name}?user.fields=profile_image_url
例如:
https://api.twitter.com/2/users/by/username/TwitterDev?user.fields=profile_image_url
当然,您应该使用您的 Bearer Token 请求它才能正常工作。为此,我推荐一个名为postman的平台。它确实有助于调用 API。
上面的示例代码返回 JSON,如下所示:
{
"data": {
"name": "Twitter Dev",
"profile_image_url": "https://pbs.twimg.com/profile_images/1445764922474827784/W2zEPN7U_normal.jpg",
"username": "TwitterDev",
"id": "2244994945"
}
}
额外的:
如果您希望配置文件图像的尺寸更大。然后,您可以在 URL 中将 size 替换为normal。有关更多详细信息,请阅读此
像这样:
https://pbs.twimg.com/profile_images/1445764922474827784/W2zEPN7U_400x400.jpg
投票帮助更多的开发者。
试试这个
http://api.twitter.com/1/users/profile_image/{twitter_account}.xml?size=bigger
在 API 1.1 中,唯一的方法是连接您的应用程序,通过以下方式检索用户
https://dev.twitter.com/docs/api/1.1/get/users/show
并检索他的照片
profile_image_url
Hare 是一种获取 Twitter 个人资料图片的非常简单的方法。
http://res.cloudinary.com/demo/image/twitter_name/w_300/ {User_Name}.jpg
这是我的个人资料图片:大:http ://res.cloudinary.com/demo/image/twitter_name/w_300/avto_key.jpg
小:http ://res.cloudinary.com/demo/image/twitter_name/w_100/avto_key.jpg
您可以通过这部分 URL 来调节大小 - w_100、w_200、w_500 等。