В php я пытаюсь получить изображение профиля следующим образом:
$tmp = json_decode(file_get_contents('https://apis.live.net/v5.0/me?access_token='.$accesstoken),true);
echo $tmp['first_name']; // OK (not an accesstoken problem)
но если я сделаю:
$picture = file_get_contents('https://apis.live.net/v5.0/'.$tmp['id'].'/picture?type=medium&access_token='.$accesstoken);
здесь я ничего не получаю, ничего не возвращается, странно.
вот ссылка на живой API: https://msdn.microsoft.com/en-us/library/hh243648.aspx#user
Они сказали :
Примечание. Чтобы перенаправить вызов GET на URL-адрес изображения пользователя, вы можете позвонить / me / picture или / USER_ID / picture.
Я тоже пробовал с https://apis.live.net/v5.0/me/picture => но тоже не работает
Я вообще не понимаю, есть идеи?
Вот область действия API:
Объем = wl.emails + wl.basic
Я заменил file_get_contents на curl:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $t);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$a = curl_exec($ch);
if(preg_match('#Location: (.*)#', $a, $r))
$picture = trim($r[1]);
и теперь я получаю эту картинку URL:
https://cid-fbf213653beb66a0.users.storage.live.com/users/0xfbf213653beb66a0/myprofile/expressionprofile/profilephoto: UserTileMedium
и сейчас :
если я открою этот URL в браузере: KO (белая страница)
если я уберу часть, выделенную жирным шрифтом выше, браузер загрузит картинку (и я смогу прочитать ее, если добавлю .png).
Есть ли способ получить изображение, не загружая его?
Задача ещё не решена.
Других решений пока нет …