Fix request string protocol, add webkey as arg for proper encoding

This commit is contained in:
Matthew Burnett 2018-04-04 17:29:20 -04:00
parent 8b00c0a71d
commit 6cf5dd15ef

View file

@ -3,6 +3,7 @@
using Newtonsoft.Json;
using ShareX.HelpersLib;
using ShareX.UploadersLib.Properties;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
@ -14,13 +15,16 @@ public class FirebaseDynamicLinksURLShortenerService : URLShortenerService
public override Icon ServiceIcon => Resources.Firebase;
public override bool CheckConfig(UploadersConfig config) => true;
public override bool CheckConfig(UploadersConfig config)
{
return !string.IsNullOrEmpty(config.FirebaseWebAPIKey) && !string.IsNullOrEmpty(config.FirebaseDynamicLinkDomain);
}
public override URLShortener CreateShortener(UploadersConfig config, TaskReferenceHelper taskInfo)
{
return new FirebaseDynamicLinksURLShortener
{
FirebaseWebAPIKey = config.FirebaseWebAPIKey,
WebAPIKey = config.FirebaseWebAPIKey,
DynamicLinkDomain = config.FirebaseDynamicLinkDomain,
IsShort = config.FirebaseIsShort
};
@ -48,7 +52,7 @@ public class FirebaseRequestSuffix
public sealed class FirebaseDynamicLinksURLShortener : URLShortener
{
public string FirebaseWebAPIKey { get; set; }
public string WebAPIKey { get; set; }
public string DynamicLinkDomain { get; set; }
public bool IsShort { get; set; }
@ -56,10 +60,15 @@ public override UploadResult ShortenURL(string url)
{
UploadResult result = new UploadResult { URL = url };
string RequestUrl = URLHelpers.ForcePrefix("firebasedynamiclinks.googleapis.com/v1/shortLinks?key=" + FirebaseWebAPIKey);
string longDynamicLink = URLHelpers.ForcePrefix(DynamicLinkDomain + ".app.goo.gl/?link=" + url);
string RequestUrl = BrowserProtocol.https + "firebasedynamiclinks.googleapis.com/v1/shortLinks";
string longDynamicLink = BrowserProtocol.https + DynamicLinkDomain + ".app.goo.gl/?link=" + url;
string option;
Dictionary<string, string> args = new Dictionary<string, string>
{
{ "key", WebAPIKey }
};
if (IsShort)
{
option = "SHORT";
@ -79,7 +88,7 @@ public override UploadResult ShortenURL(string url)
};
string json = JsonConvert.SerializeObject(request);
result.Response = SendRequest(HttpMethod.POST, RequestUrl, json, ContentTypeJSON);
result.Response = SendRequest(HttpMethod.POST, RequestUrl, json, ContentTypeJSON, args);
result.ShortenedURL = JsonConvert.DeserializeObject<FirebaseResponse>(result.Response).shortLink;
return result;