You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用MS Graph PHP SDK v2通过已知路径列出DriveItem子项

使用MS Graph PHP SDK v2通过路径列出DriveItem子项

核心实现代码

直接通过SDK的链式方法对应REST端点的层级结构,就能实现你要的请求,示例代码如下:

use Microsoft\Graph\Graph;

// 初始化已授权的Graph客户端(假设你已完成身份验证流程)
$graph = new Graph();
$graph->setAccessToken('你的访问令牌');

// 定义参数
$driveId = '目标Drive的ID';
$relativePath = 'Documents/项目资料/2024Q1'; // 相对于Drive根目录的路径,无需开头斜杠

// 链式调用获取子项
try {
    $children = $graph->drives()
        ->byDriveId($driveId)
        ->root()
        ->itemWithPath($relativePath)
        ->children()
        ->get();

    // 遍历处理子项
    foreach ($children->getValue() as $item) {
        echo $item->getName() . ' - ' . $item->getSize() . PHP_EOL;
    }
} catch (\Exception $e) {
    echo '请求失败:' . $e->getMessage();
}

关键思路解析

SDK的链式方法完全对应REST API的端点结构:

  • drives() 对应 /drives 段
  • byDriveId($driveId) 补全 /drives/{drive-id} 中的ID参数
  • root() 对应 /root 节点
  • itemWithPath($relativePath) 就是REST端点里 :/{path-relative-to-root}: 的SDK实现,用于指定相对路径
  • children() 对应 /children 子资源
  • 最后调用 get() 发起GET请求

注意事项

  • 相对路径无需开头的斜杠,比如直接写 Folder/SubFolder 而非 /Folder/SubFolder
  • 如果路径包含特殊字符,SDK会自动处理URL编码,无需手动转义
  • 若需要分页获取大量子项,可以在 get() 前添加 top(50) 这样的分页参数,后续也可通过 $children->getOdataNextLink() 处理分页逻辑

内容的提问来源于stack exchange,提问作者Angel Motta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:32:08