Получение изображения профиля пользователя twitter после аутентификации PHP oAuth
Мне нужно знать, как получить изображение профиля пользователя, который только что вошел в мой сайт с помощью twitter oAuth. Мне нужно изображение в full size, поэтому profile_picture_url не подходит для меня (поскольку он возвращает изображение 48x48. Мне нужно исходное изображение размера. Это мой код:
<?php
if(!isset($_SESSION)){
session_start();
}
require 'autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
define('CONSUMER_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxx'); // add your app consumer key between single quotes
define('CONSUMER_SECRET', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); // add your app consumer secret key between single quotes
define('OAUTH_CALLBACK', 'http://www.chapatelo.com.ar/chm/peticiones/callback.php'); // your app callback URL
if (!isset($_SESSION['access_token'])) {
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
$request_token = $connection->oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
$_SESSION['oauth_token'] = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
header("Location: " . $url);
} else {
$access_token = $_SESSION['access_token'];
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']);
$user = $connection->get("account/verify_credentials");
$_SESSION["id"] = $user->id;
$_SESSION["usuario"] = $user->screen_name;
$_SESSION["start"] = time();
$_SESSION["expire"] = $_SESSION["start"] + (3600 * 60);
echo '<img src="' . $user->profile_image_url. '"/>'; //Obviamente, este echo muetra una imagen demasiado pequeña...
}
?>
2 answers
Вы используете неправильное свойство, вы должны использовать:
profile_image_url
Или
profile_background_image_url_https
Редактирование 1:
Теперь, что касается изображения очень мало, что вам нужно сделать, это играть со значениями, посмотрите на следующее URL-адреса:
Https://abs.twimg.com/sticky/default_profile_images/default_profile_6_normal.png
Https://abs.twimg.com/sticky/default_profile_images/default_profile_6_bigger.png
Https://abs.twimg.com/sticky/default_profile_images/default_profile_6_mini.png
Https://abs.twimg.com/sticky/default_profile_images/default_profile_6.png
Надеюсь, я дал вам идеи, необходимые для достижения предлагаемое: D
Проверьте документацию: https://dev.twitter.com/overview/general/user-profile-images-and-banners
Редактирование 2:
То, что возвращает нам profile_image_url:
"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1438634086\/avatar_normal.png"
Который при отображении url выглядит так:
"http://a2.twimg.com/profile_images/1438634086/avatar_normal.png
Теперь вам нужно сделать, это с помощью функции replace
PHP
изменить этот _normal
на размер, который вы ищете: _bigger
, _mini
, или просто удалить _normal
- > Последний даст вам размер оригинал изображения.
Я вывел супер простой способ получить фотографию профиля пользователя, зарегистрированного с помощью oAuth, просто сделав следующее:
$imgSrc = substr($user->profile_image_url, 0, -11);
$imgSrc .= ".jpg";
echo '<img style="width:200px; height=200px;" src="' . $imgSrc . '"/>';
Как это работает?
В основном то, что я сделал, это печать на экране $user->profile_image_url чтобы увидеть, какой url-адрес он мне показал. И я понял, что это всегда заканчивается "_normal.jpg". Поэтому я просто вычитаю эти символы, а затем добавляю". jpg " в строку (чтобы она отображала изображение изначально загрузить), и, наконец, я положил его из" src " изображения. Таким образом, у меня появилось изображение full HD, чтобы я мог настроить по своему усмотрению.
Я надеюсь, что это поможет многим, кто хочет сделать то же самое, но, к сожалению, никто не знает, как помочь им так, как им нужно...