【问题标题】:getting shorturl with yourls api使用 yourls api 获取 shorturl
【发布时间】:2017-03-11 20:12:26
【问题描述】:

有没有办法使用 javascript/jquery 让 yourls API 返回一个短网址,如果我发送一个网址,如果已经创建了一个短网址,它只会返回短网址,如果没有,它会创建一个随机的然后返回那个新创建的?

我已经阅读了所有我能阅读的 API,但还不够深入,无法弄清楚,所以我想知道是否有人知道我在哪里可以找到该特定文档。

我想让拥有长 url 的人点击链接并返回一个短 url,如果它已经存在,我不希望再次创建它。

如果您知道如何操作,我将不胜感激您的提示/建议。

谢谢你, -理查德

【问题讨论】:

    标签: javascript jquery api yourls


    【解决方案1】:

    您的问题是针对您的后端的。我可以确认,如果您使用的是最新版本的 YOURLS,默认情况下不会有重复的短 URL。如果您多次提交长 URL,API 仍将返回相同的短 URL(给您的 Javascript 客户端)。

    您可以在您的服务器上的config.php 中找到该设置:

    /** Allow multiple short URLs for a same long URL
     ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
     ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
    define( 'YOURLS_UNIQUE_URLS', true );
    

    所以请确保设置为true


    为了帮助您入门,这里有一种使用 Javascript 创建短 URL 的简单方法。我正在使用 this third party wrapper 作为您的。

    您需要使用用户名/密码或signature token 连接到您的服务器:

    var api = yourls.connect('http://your.server/yourls-api.php', {
      username: 'admin',
      password: 'qwerty'
    });
    

    如果连接成功,可以使用.shorten():

    api.shorten('https://yourverylonglink.com/toshorten', function(data) {
      console.log(data.shorturl); // returns http://your.server/1234
    });
    

    【讨论】:

    • 所以如果它不存在,它创建它,如果它存在它返回它?我在那个包装器中没有看到,这样解释的,所以问你是否知道。谢谢您的回答。 :)
    • 我明白了。所以在这段代码中: 'api.shorten('yourverylonglink.com/toshorten', function(data) { console.log(data.shorturl); // 返回your.server/1234 });'我会简单地创建一个这样的 var,对吧: var Short1 = api.shorten('yourverylonglink.com/toshorten', function(data) { console.log(data.shorturl); // 返回 your.server/1234 });
    • 是的,您还可以使用该代码创建一个函数,将长 url 作为参数,然后 returns 短 url。
    • 只是在控制台中收到一个 javscript 错误,上面写着:“yourls is not defined”
    • 您需要在此处包含 yourls 包装器:github.com/neocotic/yourls-api/releases
    猜你喜欢
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 2014-07-20
    • 2015-02-25
    • 2016-09-21
    • 2018-12-08
    • 2018-01-04
    • 2015-02-26
    相关资源
    最近更新 更多