microsoft-graph-api - 使用 Microsoft Graph 登录的用户的图像 URL
问题描述
我一直在努力使用 Microsoft Graph 获取登录用户的图像 URL
<?php
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => "https://graph.microsoft.com/beta/me/photo/$value",
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => null,
CURLOPT_MAXREDIRS => 10,
CURLOPT_BINARYTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11",
CURLOPT_HTTPHEADER => array(
'authorization: Bearer EwBgA8l6BAAURSN/FHlDW5xN74t6GzbtsBBeBUYAATuF8OsoPq1qA+OJW6vNZu1QD6xsDHby7zwXDFBo7I2An/Y4J49AuEtWvb8v1yKDL+Kf1/iyZJ72jbo0wrDqB7Soxxzj14DBjDnHWLuxkrSLLhFcRNHyITxqbiHIRPI+3j0MpxlLiuIoSCxy+Y4fQqP7vJXolCwsyPCiAKAMJ8huEJYMr9Pd+npAur+q7S/fkoUQsxxtiJaipcaWIt8yzKhajqb7rcPMnoODK9wo/K8oFUGhIYvwhhW83/rp+IwIbwzU6RcWdeD7QyIAxmOb646GKrRO6M/pR9/sPqahitIuU1MPBD9GjLEz2F+orQGNeHhrdeX8BKyQSMvfhq7I62oDZgAACOzq1UE5lZRWMAKIXRflLOb0qnrJdEzwGUpMieK3rFjEhzsWQhy0+Rtss5Ch34z5chAevB4bqlJ0DKpm9IcpbDy75KuAwoR6kodRCyWO8NZrMYz/JGVnw19LTK3/lxYVdc9fRBwj6VtuB24+82T+TBnBIaaccy/g0vlhTIYzSTT5hA3EAL4GfLJ/PwhsJhg/1KH54bvT1TTaIOT7a56SUDOCPbcG2Mgdrviu/SQpfJtKDRjdvw70awc+xhAKa3M/99TuAKysiGUme/NZbkuxw1zfS7yydEh1C4M/uN81NNJQmPA5RKZbnH9AMJ/LAWF+uAetacAbz6xidnT/iI30GWpBCcV86wbTDJoSAuzbqtHQtnYC1sLBOhqqxucU8J/THkYNaJ9EZZlccWOQKbifjkpWPUAscFj+1ZlKw4v6BNFTSLf6nE8Htc5sKqz4eC6V3+faJs6gkz406Prf1jkAsvi+5VxkiusN0SncVU0usNEKGD8YymkXvJvr1i2KKbGMZAaMKYfO3GE+9lIMZj9+LZ94brIse9/ITfRLEHvx36v50r0Lr8NeNR/iEQKRjoRygkGXVQpmtgeBcO+LFVDPUIEkI29AI/jw1VkgHoWIZgszxi8x0YTYd7CY95yEXk+67ZrraIgPstPhZOMxRMHONQe3lQ440I4y15xRaFVdxxgApMxXWVpbrofiePCGiyvB1lok+T3VAEAsdld78uVgJituXZNbHvXAsig7lzQU0PmCICTUMf+kQd1RXWgC',
'Content-Type: image/jpg'
) ,
));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
下面是我的结果
{"@odata.context":" https://graph.microsoft.com/beta/ $metadata#users('kayu2kshow%40hotmail.com')/photo/$entity","@odata.mediaContentType":"image /jpeg","width":96,"height":96,"id":"96X96"}
请问,我怎样才能让网页上显示的图像?
解决方案
看来你没有打电话
https://graph.microsoft.com/beta/me/photo/$value
但反而
https://graph.microsoft.com/beta/me/photo/
因此仅接收个人资料图像的元数据。
PHP 将尝试将$value
您的字符串解释为 php 变量。由于$value
未设置,因此不会将任何内容连接到字符串。要告诉解释器您不想将$value
其视为变量,需要对$
字符进行转义。
尝试将您的线路更改为:
CURLOPT_URL => "https://graph.microsoft.com/beta/me/photo/\$value"
然后发送正确的请求,您将收到图像数据(base64 编码)
要显示 Base64 编码的图像,您可以使用以下 html 代码:
<img src="data:image/jpeg;base64, {insertBase64EncodedData}"/>
推荐阅读
- css-selectors - 目标图像的第 n 个子项(偶数)不起作用
- java - 在没有反向函数或循环的情况下反转字符串
- scala - SameSite=None 正在成为另一个 cookie
- javascript - 在画布中绘制旋转圆角矩形而不使用 canvas.rotate()
- gradle - Gradle 通过命令行修改 build.gradle 文件
- c# - 在列表中查找重复键并返回具有最新日期的对象
- reactjs - ReactJS 测试 - 检查组件是否在 componentDidMount 中的异步调用后渲染
- c - TCP套接字,发送文件,客户端服务器,服务器不保存整个文件,C语言
- delphi - 如何在 EMS Rad 服务器中提供多个版本的资源 BPL 文件
- scala - Scala中3种类型之间的协方差