如何使用Microsoft graph在onedrive中使用php获取图像的url

rdrgkggo  于 2023-01-16  发布在  PHP
关注(0)|答案(1)|浏览(188)

我使用Microsoft Graph 1.85 sdk for PHP在一个驱动器帐户中管理文件管理,获得访问令牌后,我成功地使用此语法上传和下载文件

use Microsoft\Graph\Graph;
$graph = new Graph();
$graph->setAccessToken($user_accessToken);
// upload
$graph->createRequest("PUT", "/me/drive/root:/" . $folder_in_onedrive . $file . ":/content")->upload($uploadfile);
// download
 $graph->createRequest("GET", "/me/drive/root:/" . $folder_in_onedrive . $anotherfile . ":/content")->download($target_dir . $anotherfile);

现在,我想在图形API中使用type和scope参数创建另一个请求类型get sharing link,我知道在文档中,该请求应该如下所示:

$graph->createRequest("POST", "/me/drive/root:/" . $folder_in_onedrive . $file . ":/createLink")
/* Now im pretty sure d'ont know how to handle this type of request to get the url to the file in my case an image to display*/
mnemlml8

mnemlml81#

在图表示例和文档中搜索后,我设法找到了一个解决方案,以及许多可以用来获取文件url的选项使用createLink的类型和权限编辑和匿名等选项默认为:

$link = $graph->createRequest("POST", "/me/drive/root:/" . $folder_in_onedrive . $filename . ":/createLink")
    ->addHeaders(["Content-Type" => "application/json"])
    ->setReturnType( Microsoft\Graph\Model\SharingLink::class)
    ->execute();

    print_r($link);^

另一个示例方法是直接从DriveItem模型的GET请求中获取url,如下所示:

$link = $graph->createRequest("GET", "/me/drive/root:/" . $folder_in_onedrive . $file)
    ->addHeaders(["Content-Type" => "application/json"])
    ->setReturnType(Microsoft\Graph\Model\DriveItem::class)
    ->execute();
echo $link->getWebUrl();

希望能帮上忙。

相关问题