問題描述
在 API 1.0 中,我們可以使用 users/profile_image/:screen_name
例如:http://api.twitter.com/1/users/profile_image/EA_FIFA_FRANCE
但是,它在 API 1.1 中不再起作用.
請問您有解決方案嗎?
用戶頭像
好的,所以您需要用戶的個人資料圖片.您將需要查看 旨在幫助大家輕松或毫不費力地向 1.1 API 發出經過身份驗證的請求.
當您使用它時,您會得到上面看到的響應.按照帖子說明,一步一步,您可以在此處獲取庫(您只需在項目中包含一個文件).
基本上,上一篇文章解釋了您需要執行以下操作:
- 創建一個 Twitter 開發者帳戶
- 從 Twitter 獲取一組獨特的密鑰(總共 4 個密鑰).
- 將您的應用設置為具有讀/寫訪問權限
- 包括 TwitterApiExchange.php(庫)
- 將您的密鑰放入
$settings
數組 - 從文檔中選擇您的 URL 和請求方法(發布/獲取)(我把鏈接放在上面!)
- 提出請求,就是這樣!
一個實際例子
我假設您按照上述帖子中的分步說明進行操作(包含漂亮的彩色圖片).這是您用來獲得所需內容的代碼.
//需要庫文件,很明顯require_once('TwitterAPIExchange.php');//使用您從開發站點獲得的密鑰設置您的設置$設置=數組('oauth_access_token' =>"YOUR_ACCESS_TOKEN",'oauth_access_token_secret' =>"YOUR_ACCESS_TOKEN_SECRET",'consumer_key' =>"YOUR_CONSUMER_KEY",'consumer_secret' =>YOUR_CONSUMER_SECRET");//從文檔中選擇你想要的 url,這是 users/show$url = 'https://api.twitter.com/1.1/users/show.json';//根據文檔,請求方法是 GET,而不是 POST$requestMethod = 'GET';//設置你的獲取字符串,我們在這里使用我的網名$getfield = '?screen_name=j7mbo';//創建對象$twitter = new TwitterAPIExchange($settings);//發出請求并將響應放入 $json 變量中$json = $twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)->performRequest();//是json,所以解碼成數組$result = json_decode($json);//訪問數組中的 profile_image_url 元素回聲 $result->profile_image_url;
差不多就是這樣!很簡單的.還有 users/lookup 可以有效地做同樣的事情,但你可以:
<塊引用>根據傳遞給 user_id 和/或 screen_name 參數的逗號分隔值的指定,為每個請求返回最多 100 個用戶的完全水合用戶對象.
如果您需要獲取多個用戶的詳細信息,請使用它,但由于您只需要一個用戶的詳細信息,請使用如上所示的 users/show.
我希望能把事情弄清楚一點!
In API 1.0, we can use users/profile_image/:screen_name
For example : http://api.twitter.com/1/users/profile_image/EA_FIFA_FRANCE
But, it doesn't work anymore in API 1.1.
Do you have a solution, please ?
The user's profile image
Okay, so you want a user's profile image. You're going to need to take a look at the twitter REST API 1.1 docs. This is a list of all the different requests you can make to their API (don't worry, I'll get to how you actually do this later on).
There are multiple ways to get the user's profile image, but the most notable one is: users/show. According to the docs for this, the users/show method:
Returns a variety of information about the user specified by the required user_id or screen_name parameter. The author's most recent Tweet will be returned inline when possible.
Well, the user profile image must be in there somewhere, correct?
Let's have a look at a typical response to a request for this information, using the users/show url (we'll use my profile as an example).
I've cut off some from the bottom, because there is a lot of data to go through. Most importantly, you'll see what you require:
This is the profile_image_url key that you need to get access to.
So, how do you do all this? It's pretty simple, actually.
Authenticated Requests
As you rightly pointed out, as of June 11th 2013 you can't make unauthenticated requests, or any to the 1.0 API any more, because it has been retired. So OAuth is the way to make requests to the 1.1 API.
I wrote a stack overflow post with an aim to help all you guys make authenticated requests to the 1.1 API with little to no effort.
When you use it, you'll get back the response you see above. Follow the posts instructions, step-by-step, and you can get the library here (you only need to include one file in your project).
Basically, the previous post explains that you need to do the following:
- Create a twitter developer account
- Get yourself a set of unique keys from twitter (4 keys in total).
- Set your application to have read/write access
- Include TwitterApiExchange.php (the library)
- Put your keys in a
$settings
array - Choose your URL and request method (Post/Get) from the docs (I put the link above!)
- Make the request, that's it!
A practical example
I'm going to assume you followed the step-by-step instructions in the above post (containing pretty colour pictures). Here's the code you would use to get what you want.
// 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;
That's pretty much it! Very simple. There's also users/lookup which effectively does the same thing, but you can:
Returns fully-hydrated user objects for up to 100 users per request, as specified by comma-separated values passed to the user_id and/or screen_name parameters.
If you ever need to get more than one user's details, use that, but as you only require one user's details, use users/show as above.
I hope that cleared things up a bit!
這篇關于如何使用 Twitter API 1.1 獲取用戶圖像?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!