【问题标题】:OneDrive Android SDK Navigate Available SitesOneDrive Android SDK 导航可用站点
【发布时间】:2018-04-25 04:15:00
【问题描述】:

我正在尝试创建用户可以在其租户中访问的所有当前站点的列表并显示它,以便用户以后可以选择要将文件上传到的站点。我正在使用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://{tenant}-my.sharepoint.com/_api/v2.0/me 获取我的 onedrive 的根文件夹。如果我将文件上传到root,该文件将放置在我的 OneDrive 的根目录中。我想将文件上传到我创建的站点“测试”而不是我的根驱动器。

我将如何寻找和选择另一个网站来上传我的文件?

【问题讨论】:

    标签: android onedrive


    【解决方案1】:

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

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

    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 做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多