microsoftgraph / microsoftgraph/msgraph-sdk-java

can't access oneDrive recycle bin

未關閉
#2,327 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

status:waiting-for-triage type:bug
主要語言
Java
星號
444
分支
154
平均合併
18 小時 28 分鐘
30 天內合併 PR
4

描述

Describe the bug

from an app with Application permissions.

I try to get the recycle bin content of a user with using the call listed here
https://learn.microsoft.com/en-us/graph/api/filestoragecontainer-list-recyclebinitem?view=graph-rest-1.0

that is to say
GET /storage/fileStorage/containers/{containerId}/recycleBin/items

In containerId, I put the driveId of the user.

with the last java sdk, it looks like this
graphClient.storage().fileStorage().containers().byFileStorageContainerId(fileStorageContainerId).recycleBin().items().get();

But I get this error
com.microsoft.graph.models.odataerrors.ODataError: One of the provided arguments is not acceptable.

but using the same driveId, this call do work as intended
graphClient.storage().fileStorage().containers().byFileStorageContainerId(fileStorageContainerId).drive()

I do have the permission FileStorageContainer.Selected enabled for the application

I already tried to ask in another place to see if there is a problem with the way I use the call but didn't have any relevant anwers.
https://learn.microsoft.com/en-us/answers/questions/2180582/getting-the-contents-of-the-recycle-bin-from-msgra

Expected behavior

this call
graphClient.storage().fileStorage().containers().byFileStorageContainerId(fileStorageContainerId).recycleBin().items().get();

should give me a list of drive items

How to reproduce

with app permission, call this and put in fileStorageContainerId a user's drive id.

graphClient.storage().fileStorage().containers().byFileStorageContainerId(fileStorageContainerId).recycleBin().items().get();

If the problem is reproduced, you will get an error

here is a complete code

import com.azure.identity.ClientSecretCredential;
import com.azure.identity.ClientSecretCredentialBuilder;
import com.microsoft.graph.models.RecycleBinItemCollectionResponse;
import com.microsoft.graph.serviceclient.GraphServiceClient;
import jakarta.annotation.PostConstruct;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class RpiApigraphTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(RpiApigraphTestApplication.class, args);
    }

    @PostConstruct
    public void myMain() {
        final String clientId = "";
        final String tenantId = "";
        final String clientSecret = "";

        final String[] scopes = new String[]{"https://graph.microsoft.com/.default"};

        final ClientSecretCredential credential = new ClientSecretCredentialBuilder()
                .clientId(clientId).tenantId(tenantId).clientSecret(clientSecret).build();

        if (null == scopes || null == credential) {
            System.out.println("error");
        }

        final GraphServiceClient graphClient = new GraphServiceClient(credential, scopes);

        String fileStorageContainerId = ""; //put the driveId Of a user Here


		//works as intended
        graphClient.
                storage().fileStorage().containers().byFileStorageContainerId(fileStorageContainerId).drive();


		//will return an error
        RecycleBinItemCollectionResponse result =
                graphClient.
                storage().fileStorage().containers().byFileStorageContainerId(fileStorageContainerId).recycleBin().items().get();

		
        System.out.println("");
    }

}
SDK Version

6.29.0

Latest version known to work for scenario above?

No response

Known Workarounds

No response

Debug output

error 400

Method threw 'com.microsoft.graph.models.odataerrors.ODataError' exception.
com.microsoft.graph.models.odataerrors.ODataError: One of the provided arguments is not acceptable.

Configuration

No response

Other information

No response

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

先從完整 Java 範例中已記錄的 recycle-bin 端點和 GraphServiceClient 呼叫開始,然後使用所述的應用程式權限和 SDK 版本 6.29.0 重現 400 回應。將 recycle-bin 項目入口的要求與正常運作的 Drive 要求進行比較;完成的標準是確定失敗發生在 SDK 要求中還是服務/API 行為中,並記錄證據。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
java
領域
api
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。