使用 Microsoft Graph 的登录用户的图像 URL [英] image URL of a signed-in user using Microsoft Graph

查看:50
本文介绍了使用 Microsoft Graph 的登录用户的图像 URL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在努力使用 Microsoft Graph 获取登录用户的图像 URL

I've been trying to hard to get the image URL of a signed-in user using Microsoft Graph

<?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"}

{"@odata.context":"https://graph.microsoft.com/beta/$metadata#users('kayu2kshow%40hotmail.com')/photo/$entity","@odata.mediaContentType":"image/jpeg","width":96,"height":96,"id":"96X96"}

请问,如何让图片显示在网页上?

Please, how may I get the image displayed on the web page?

推荐答案

看来你不是在打电话

 https://graph.microsoft.com/beta/me/photo/$value

而是

 https://graph.microsoft.com/beta/me/photo/  

因此只收到 元数据 个人资料图片.

and thus receiving only the metadata of the profile image.

PHP 会尝试将字符串中的 $value 解释为 php 变量.由于 $value 未设置,因此没有任何内容连接到字符串.要告诉解释器您不想将 $value 视为变量,需要对 $ 字符进行转义.

PHP will try to interpret $value in your string as an php-variable. As $value is not set nothing is concated to the string. To tell the interpreter that you do not want to treat $value as a variable need to escape the $ character.

尝试将您的线路更改为:

Try changing your line to:

 CURLOPT_URL => "https://graph.microsoft.com/beta/me/photo/\$value"

然后发送正确的请求,您将收到图像数据(base64 编码)

then the correct request is send and you will receive the image data (base64 encoded)

要显示 Base64 编码的图像,您可以使用以下 html 代码:

To display an Base64 encoded image you can use the following html code:

<img src="data:image/jpeg;base64, {insertBase64EncodedData}"/>

这篇关于使用 Microsoft Graph 的登录用户的图像 URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆