我如何将带有 php 的 https://graph.microsoft.com/v1.0/me/photo/$value 响应转换为图像
How can i convert a https://graph.microsoft.com/v1.0/me/photo/$value response with php to an image
我正在尝试在 php 网站上显示 Microsoft Graph 图像。我从图表中收到图像,但格式不正确。
结果如����JFIF``��C等
问题是我收到的是一张图片,而不是 json。但是我无法使用上面的代码显示图像。
> HTTP/1.1 200 OK
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: image/jpeg
ETag: "BB3972DD"
request-id: 1d3edddb-4278-43ac-be53-4a60861c7703
client-request-id: 1d3edddb-4278-43ac-be53-4a60861c7703
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"North Europe","Slice":"SliceA","Ring":"3","ScaleUnit":"002","Host":"AGSFE_IN_2","ADSiteName":"DUB"}}
Duration: 176.1934
Date: Wed, 28 Feb 2018 18:35:52 GMT
����JFIF``��C��C����"��
���}!1A
感谢这个社区的帮助,我得以解决我的问题。我的工作代码是:
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://graph.microsoft.com/v1.0/me/photo/%24value',
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => null,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_HTTPHEADER => array(
'authorization: Bearer '.ipDb()->selectValue('user','hash',array('id' => ipUser()->userId())),
'content-type: image/jpeg; charset=utf-8'
) ,
));
$response = curl_exec($ch);
// Close the cURL resource, and free system resources
curl_close($ch);
$returndata = 'photo <img src="data:image/jpeg;base64,' . base64_encode($response) . '"/>';
return $returndata;
由于 $value URL returns 图像二进制,行
$returndata = 'photo <img src="data:image/jpeg;base64,' . base64_encode($res1['@odata.context']) . '"/>';
不应使用 $res1['@odata.context']
,而应直接使用 $response
。
所以base64_encode($response)
应该是img src标签的最后一部分。
我正在尝试在 php 网站上显示 Microsoft Graph 图像。我从图表中收到图像,但格式不正确。
结果如����JFIF``��C等
问题是我收到的是一张图片,而不是 json。但是我无法使用上面的代码显示图像。
> HTTP/1.1 200 OK
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: image/jpeg
ETag: "BB3972DD"
request-id: 1d3edddb-4278-43ac-be53-4a60861c7703
client-request-id: 1d3edddb-4278-43ac-be53-4a60861c7703
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"North Europe","Slice":"SliceA","Ring":"3","ScaleUnit":"002","Host":"AGSFE_IN_2","ADSiteName":"DUB"}}
Duration: 176.1934
Date: Wed, 28 Feb 2018 18:35:52 GMT
����JFIF``��C��C����"��
���}!1A
感谢这个社区的帮助,我得以解决我的问题。我的工作代码是:
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://graph.microsoft.com/v1.0/me/photo/%24value',
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => null,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_HTTPHEADER => array(
'authorization: Bearer '.ipDb()->selectValue('user','hash',array('id' => ipUser()->userId())),
'content-type: image/jpeg; charset=utf-8'
) ,
));
$response = curl_exec($ch);
// Close the cURL resource, and free system resources
curl_close($ch);
$returndata = 'photo <img src="data:image/jpeg;base64,' . base64_encode($response) . '"/>';
return $returndata;
由于 $value URL returns 图像二进制,行
$returndata = 'photo <img src="data:image/jpeg;base64,' . base64_encode($res1['@odata.context']) . '"/>';
不应使用 $res1['@odata.context']
,而应直接使用 $response
。
所以base64_encode($response)
应该是img src标签的最后一部分。