【发布时间】:2023-08-21 22:09:01
【问题描述】:
我正在尝试使用 Microsoft Graph 获取当前用户的个人资料图像。我正在使用msgraph-sdk-php。
以下代码获取照片,但返回 jpeg 文件的二进制数据。
if (session_status() == PHP_SESSION_NONE)
session_start();
$graph = new Graph();
$graph->setAccessToken($_SESSION['access_token']);
$photo = $graph->createRequest("GET", "/me/photo/\$value")
->execute();
return $photo->getRawBody();
It seems 我需要将响应类型设置为 blob 才能以更正常的方式使用图像,但是如何使用 Guzzle 做到这一点?
我也用 cUrl 试过,但同样的问题,我得到的只是二进制数据:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://graph.microsoft.com/v1.0/me/photos/48x48/\$value",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"authorization: Bearer $at",
"cache-control: no-cache",
"Content-type: image/jpeg",
"Accept: blob",
"postman-token: caccedb3-8253-e6aa-7e30-25052bc28f2f"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
return $response;
}
【问题讨论】:
-
这可能与 *.com/questions/47614068/… 重复
标签: laravel microsoft-graph-api guzzle