首页 文章

OneDrive Android SDK导航可用站点

提问于
浏览
0

我'm trying to create a list of all current sites a user can access within their tenant and display it so the user can later select what site to upload files to. I' m使用OneDrive for Android SDK .

client.get()
            .getDrive()
            .getItems(root)
            .getChildren()
            .byId(name)
            .getContent()
            .buildRequest()
            .put(contents, callback);

此代码当前将文件上传到 root ,这是从中获取的ID

client.get()
            .getDrive()
            .getRoot()
            .buildRequest()

这可以使用https:// -my.sharepoint.com/_api/v2.0/me获取我的onedrive的根文件夹 . 如果我将文件上传到 root ,则该文件将放在我的OneDrive的根目录中 . 我想将文件上传到我创建的网站"Test"而不是我的根驱动器 .

我如何查找和选择其他网站上传我的文件?

1 回答

  • 0

    我最终使用Microsoft Graph SDK来解决我的问题 .

    找到使用Microsoft Graph Explorer返回所有用户站点的相关MSGraph API endpoints :

    https://graph.microsoft.com/v1.0/sites?search=
    

    创建要反序列化JSON的类:

    public class Site {
    
    @SerializedName("createdDateTime")
    private String createdDateTime;
    
    @SerializedName("id")
    private String id;
    
    @SerializedName("lastModifiedDateTime")
    private String lastModifiedDateTime;
    
    @SerializedName("name")
    private String name;
    
    @SerializedName("webUrl")
    private String webUrl;
    
    @SerializedName("displayName")
    private String displayName;
    }
    
    
    
    public class Sites {
    
    @SerializedName("value")
    private ArrayList<Site> sites;
    
    }
    

    并使用MSGraph SDK中的BaseRequest创建一个自定义请求,该请求反序列化返回的JSON:

    public class CustomRequest extends BaseRequest {
    
    public CustomRequest(final String requestUrl, final IBaseClient client, final java.util.List<Option> requestOptions) {
        super(requestUrl, client, requestOptions, JsonElement.class);
    }
    
    public Sites getSites() throws ClientException {
        Gson gson = new Gson();
        JsonElement re = send(HttpMethod.GET, null);
        Sites sites = gson.fromJson(re, Sites.class);
    
        return sites;
    }
    

    使用AsyncTask调用 getSites 方法和必要参数将返回一个Site对象集合,其中包含登录用户可以访问的站点 .

    我没有回答这个问题,希望通过OneDrive SDK实际上可以做到这一点 .

相关问题