public string CreateShareableLinkAPIv1(string path, DropboxURLType urlType) { if (!string.IsNullOrEmpty(path) && OAuth2Info.CheckOAuth(AuthInfo)) { string url = URLHelpers.CombineURL(URLShares, URLHelpers.URLPathEncode(path)); Dictionary <string, string> args = new Dictionary <string, string>(); args.Add("short_url", urlType == DropboxURLType.Shortened ? "true" : "false"); string response = SendRequest(HttpMethod.POST, url, args, GetAuthHeaders()); if (!string.IsNullOrEmpty(response)) { DropboxShares shares = JsonConvert.DeserializeObject <DropboxShares>(response); if (urlType == DropboxURLType.Direct) { return(GetDirectShareableURL(shares.URL)); } else { return(shares.URL); } } } return(null); }
// https://www.dropbox.com/developers/core/docs#shares public string CreateShareableLink(string path, DropboxURLType urlType) { if (!string.IsNullOrEmpty(path) && OAuth2Info.CheckOAuth(AuthInfo)) { string url = URLHelpers.CombineURL(URLShares, URLHelpers.URLPathEncode(path)); Dictionary <string, string> args = new Dictionary <string, string>(); args.Add("short_url", urlType == DropboxURLType.Shortened ? "true" : "false"); string response = SendRequest(HttpMethod.POST, url, args, GetAuthHeaders()); if (!string.IsNullOrEmpty(response)) { DropboxShares shares = JsonConvert.DeserializeObject <DropboxShares>(response); if (urlType == DropboxURLType.Direct) { Match match = Regex.Match(shares.URL, @"https?://(?:www\.)?dropbox.com/s/(?<path>\w+/.+)"); if (match.Success) { string urlPath = match.Groups["path"].Value; if (!string.IsNullOrEmpty(urlPath)) { return(URLHelpers.CombineURL(URLShareDirect, urlPath)); } } } else { return(shares.URL); } } } return(null); }