microsoftgraph / microsoftgraph/msgraph-sdk-java
can't access oneDrive recycle bin
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 444
- Forks
- 154
- Merge medio
- 18 h 28 min
- PR fusionados (30 d)
- 4
Descripción
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
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el endpoint documentado de recycle-bin y la llamada a GraphServiceClient en el ejemplo completo de Java; después, reproduce la respuesta 400 usando el permiso de aplicación indicado y la versión 6.29.0 del SDK. Compara la solicitud para el punto de entrada de los elementos de recycle-bin con la solicitud funcional de Drive; el trabajo estará completo cuando se haya identificado si el fallo está en la solicitud del SDK o en el comportamiento del servicio/API y se hayan registrado las evidencias.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- api
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100