有没有办法使用javascript/jquery通过yourls API返回一个短网址,如果我发送一个网址,如果已经创建了一个短网址,它只会返回短网址,如果没有,它会创建一个随机的然后返回那个新创建的?
我已经阅读了所有我能读到的 API,但还不够深入,无法弄清楚,所以我想知道是否有人知道我在哪里可以找到该特定文档。
我想让拥有长 url 的人单击链接并返回一个短 url,如果它已经存在,我不希望它再次创建。
如果您知道如何操作,我将不胜感激您的提示/建议。
谢谢你,-理查德
有没有办法使用javascript/jquery通过yourls API返回一个短网址,如果我发送一个网址,如果已经创建了一个短网址,它只会返回短网址,如果没有,它会创建一个随机的然后返回那个新创建的?
我已经阅读了所有我能读到的 API,但还不够深入,无法弄清楚,所以我想知道是否有人知道我在哪里可以找到该特定文档。
我想让拥有长 url 的人单击链接并返回一个短 url,如果它已经存在,我不希望它再次创建。
如果您知道如何操作,我将不胜感激您的提示/建议。
谢谢你,-理查德
您的问题是针对您的后端的。我可以确认,如果您使用的是最新版本的 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 的简单方法。我正在为您的第三方包装器使用此第三方包装器。
您将需要使用用户名/密码或您的签名令牌连接到您的服务器:
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
});