Подтвердить что ты не робот

Как получить изображение пользователя с API-интерфейсом Twitter 1.1?

В API 1.0 мы можем использовать users/profile_image/:screen_name

Например: http://api.twitter.com/1/users/profile_image/EA_FIFA_FRANCE

Но он больше не работает в API 1.1.

У вас есть решение, пожалуйста?

4b9b3361

Ответ 1

Изображение профиля пользователя

Хорошо, так что вам нужен образ профиля пользователя. Вам нужно будет взглянуть на twitter REST API 1.1 docs. Это список всех различных запросов, которые вы можете внести в их API (не волнуйтесь, я расскажу, как вы на самом деле это сделаете позже).

Существует несколько способов получить изображение профиля пользователя, но наиболее примечательным является: users/show. Согласно документам для этого, метод users/show:

Возвращает разнообразную информацию о пользователе, указанную параметром user_id или screen_name. Автор последних последних новостей, когда это возможно, будет возвращен встроенным.

Ну, изображение профиля пользователя должно быть где-то там, правильно?

Давайте рассмотрим типичный ответ на запрос этой информации, используя URL-адрес users/show (мы будем использовать мой профиль в качестве примера).

Example response for users/show from the twitter 1.1 api

Я отключил некоторые из них, потому что есть много данных. Самое главное, вы увидите, что вам нужно:

profile_image_url key

Это profile_image_url ключ, к которому вам нужно получить доступ.

Итак, как вы все это делаете? На самом деле это довольно просто.

Аутентифицированные запросы

Как вы правильно указали, по состоянию на 11 июня 2013 года вы больше не можете отправлять запросы, не прошедшие проверку подлинности, или любые из них в API 1.0, поскольку он был удален. Таким образом, OAuth - это способ сделать запросы к API 1.1.

Я написал сообщение о переполнении стека с целью помочь всем, кто вы, ребята, выполнить аутентифицированные запросы к API 1.1 с минимальными усилиями.

Когда вы его используете, вы получите ответ, который вы видите выше. Следуйте инструкциям по постов, шаг за шагом, и вы можете получить библиотеку здесь (вам нужно включить только один файл в свой проект).

В основном, предыдущая статья объясняет, что вам нужно сделать следующее:

  • Создайте учетную запись разработчика twitter
  • Получите себе набор уникальных ключей из твиттера (всего 4 ключа).
  • Установите для вашего приложения доступ для чтения/записи
  • Включить TwitterApiExchange.php(библиотека)
  • Поместите свои ключи в массив $settings
  • Выберите свой URL-адрес и метод запроса (Post/Get) из документов (я установил ссылку выше!)
  • Сделайте запрос, чтобы он!

Практический пример

Я собираюсь предположить, что вы выполнили пошаговые инструкции в приведенной выше статье (содержащие довольно цветные изображения). Здесь код, который вы использовали бы, чтобы получить то, что вы хотите.

// 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 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;

Это в значительной степени! Очень просто. Там также users/lookup, который фактически делает то же самое, но вы можете:

Возвращает полностью увлажненные пользовательские объекты для до 100 пользователей на запрос, как указано значениями, разделенными запятыми, переданными параметрам user_id и/или screen_name.

Если вам когда-либо понадобится получить более одной информации о пользователе, используйте это, но поскольку вам требуется только одна пользовательская информация, используйте пользователя/показать, как указано выше.

Я надеюсь, что это немного почистило!

Ответ 3

Вы говорите, что хотите использовать Twitter API 1.1, но вы не хотите аутентифицировать свои запросы. Неавторизованные запросы не поддерживаются в API v1.1.. Поэтому, пожалуйста, приспосабливайтесь к изменению API. Просмотреть обновления:

Вы можете получить изображение из поля profile_image_url запроса https://api.twitter.com/1.1/users/show.json. Для этого метода требуется либо id, либо 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

Ответ 4

попробуйте это

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

Ответ 5

Как отмечалось в предыдущих ответах и ​​комментариях:

  • Twitter API v1.0 устарел
  • API Twitter v1.1 требует OAuth
  • OP (@Steffi) не хочет аутентифицироваться

Выберите любые два; со всеми тремя это не-идти. Ответ @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 перевод должен быть простым.

Ответ 6

Заяц - очень простой способ получить изображение в Twitter.

http://res.cloudinary.com/demo/image/twitter_name/w_300/ {User_Name}.jpg

это мой профиль picutre: Большой: 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 и т.д.