public string CreateShareableLink(string path, bool directLink) { if (!string.IsNullOrEmpty(path) && OAuth2Info.CheckOAuth(AuthInfo)) { string json = JsonConvert.SerializeObject(new { path = VerifyPath(path), settings = new { requested_visibility = "public" // Anyone who has received the link can access it. No login required. } }); string response = SendRequest(HttpMethod.POST, URLCreateSharedLink, json, ContentTypeJSON, null, GetAuthHeaders()); DropboxLinkMetadata linkMetadata = null; if (!string.IsNullOrEmpty(response)) { linkMetadata = JsonConvert.DeserializeObject <DropboxLinkMetadata>(response); } else if (IsError && Errors[Errors.Count - 1].Contains("\"shared_link_already_exists\"")) // Ugly workaround { DropboxListSharedLinksResult result = ListSharedLinks(path, true); if (result != null && result.links != null && result.links.Length > 0) { linkMetadata = result.links[0]; } } if (linkMetadata != null) { if (directLink) { return(GetDirectShareableURL(linkMetadata.url)); } else { return(linkMetadata.url); } } } return(null); }
public DropboxListSharedLinksResult ListSharedLinks(string path, bool directOnly = false) { DropboxListSharedLinksResult result = null; if (path != null && OAuth2Info.CheckOAuth(AuthInfo)) { string json = JsonConvert.SerializeObject(new { path = VerifyPath(path), direct_only = directOnly }); string response = SendRequest(HttpMethod.POST, URLListSharedLinks, json, ContentTypeJSON, null, GetAuthHeaders()); if (!string.IsNullOrEmpty(response)) { result = JsonConvert.DeserializeObject <DropboxListSharedLinksResult>(response); } } return(result); }