【问题标题】:Google Firebase URL Shortener in C#C# 中的 Google Firebase URL 缩短器
【发布时间】:2018-04-14 15:20:46
【问题描述】:

我多年来一直在使用 Google 网址缩短器,现在我只收到了 API 将停用的通知。我没有积极管理我的代码,但现在我需要:(

无论如何,我不知道如何更改我的代码。我设法获得了一个新的 Google Firebase API 密钥,但是现在呢?

这是 Google 给出的指导……https://firebase.google.com/docs/dynamic-links/rest……没错。那里不多,没有编码示例……我不是真正的编码员,所以我已经被卡住了。

这是我的原始代码:

     string shorturl;
     string GoogleAPIkey = "mylittlesecret";
     var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.googleapis.com/urlshortener/v1/url?key=" + GoogleAPIkey);
     httpWebRequest.ContentType = "application/json";
     httpWebRequest.Method = "POST";
     string longurl = "http://www.google.com";

     using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))

            {
                string json = "{\"longUrl\":\"" + longurl + "\"}";
                streamWriter.Write(json);
            }


    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))

            {
                var responseText = streamReader.ReadToEnd();
                dynamic data = JObject.Parse(responseText);
                shorturl = data.id;
            }


    Console.WriteLine("This is the short URL:" + shorturl);

关于如何开始的任何指导?

【问题讨论】:

    标签: c# api firebase url


    【解决方案1】:

    根据您提供的文档链接,唯一的区别似乎是请求的 URL 和参数名称。


    而不是https://www.googleapis.com/urlshortener/v1/url?key= + yourApiKey

    使用https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key= + yourFirebaseApiKey


    并且,而不是string json = "{\"longUrl\":\"" + longurl + "\"}";

    你可以使用:string json = "{\"longDynamicLink\":\"" + longurl + "\"}";


    编辑:再看一遍,我只是注意到您的长网址缺少一些非常重要的东西,您的 firebase 域。例如"https://zbr8b.app.goo.gl/?link="

    为了使 url 缩短服务工作,我们必须提供我们的 api 密钥和与之相关的域,以便在动态链接中使用,所以在这种情况下,我们只是缺少域:

    //You can find this in your firebase console in "Dynamic Links"
    string myFBDomain= "https://zbr8b.app.goo.gl/?link="; 
    string longUrl = myFBDomain + "https://google.com?id=123";
    

    请注意,使用我们感兴趣的 url 的正确架构也很重要,httphttps

    【讨论】:

    • 我唯一的变化:string post = "{\"longDynamicLink\":\"" + url + "\"}"; var url_REST_API = "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key="; var request = (HttpWebRequest)WebRequest.Create(new Uri(url_REST_API + _key));
    • @user9467387 还没有
    • 可惜。如果您找到解决方案,请随时通知我们。
    • 有人知道这个吗?我也卡住了。我也得到 400 BadRequest
    【解决方案2】:

    我得到了这个:(注意:你有 data.id,必须更改为 data.shortlink)

    string GoogleAPIkey = "YOUR FB PROJECT API";
        var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=" + GoogleAPIkey);
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method = "POST";
        string longurl = "https://YOURDOMAIN.page.link/?link=https://www.YOURLONGURL.com/account?g=sdasdhaskjdh4547576aksgskjg";
    
        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
    
        {
            string json = "{\"longDynamicLink\":\"" + longurl + "\"}";
            streamWriter.Write(json);
        }
    
    
        var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
    
        {
            var responseText = streamReader.ReadToEnd();
            dynamic data = JObject.Parse(responseText);
            shorturl = data.shortLink;
        }
    
    
    
        Response.Write(shorturl);
    

    【讨论】:

    • 谢谢。有一天会试一试!感谢您的评论!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 2018-11-23
    相关资源
    最近更新 更多