【问题标题】:yourls api is executing url before shortingyourls api 在做空之前执行 url
【发布时间】:2014-07-20 06:48:47
【问题描述】:

我已经安装了 YOURLS API,除了一个问题外,它工作正常。无论我传递什么 URL 来缩短,它首先执行那个 URL。其中一个链接是取消订阅链接,点击它会立即取消订阅我们邮件中的会员。我正在使用带有安全令牌的无密码 API 调用,并且我正在通过 file_get_contents 函数调用 yourls-api.php 文件。这是我写的sn-p代码:

$url = urlencode($url);
$api_url = 'http://mydomain.com/yourls/yourls-api.php?signature=593642y63x&action=shorturl&format=json&url='.$url;
$arr_output = json_decode(file_get_contents($api_url), true);   

谁能告诉我如何阻止 YOURLS API 在缩短之前不执行 URL?

【问题讨论】:

  • 你是什么?有链接吗?
  • YOURLS 主页:yourls.org(代表您自己的 URL 缩短器)
  • 它是一个 URL 缩短 API..yourls.org
  • @swati 你在使用这里的任何插件吗:github.com/YOURLS/YOURLS/wiki/Plugin-List
  • @Sankalp 是“随机关键字”插件,但据我记得,它也发生在插件激活之前...

标签: php yourls


【解决方案1】:

抱歉,这个周末有点忙,耽搁了。

今天早上刚刚弄清楚您为什么会遇到上述问题。

在您的代码中:

$url = urlencode($url);
$api_url = 'http://mydomain.com/yourls/yourls-api.php?signature=593642y63x&action=shorturl&format=json&url='.$url;
$arr_output = json_decode(file_get_contents($api_url), true);

您正在传递以下参数: 签名、动作、网址和格式 但是 YOURLS api 不计算这些参数就足够了,它还需要传递一个参数,即标题

因此,您需要修改代码以包含“title”参数以及您传递的所有其他参数,如下所示:

$url = urlencode($url);
$api_url = 'http://mydomain.com/yourls/yourls-api.php?title=swati&signature=593642y63x&action=shorturl&format=json&url='.$url;
$arr_output = json_decode(file_get_contents($api_url), true);

现在,问题出现了,为什么不传递 title 参数会导致 URL 被执行? 因此,这是因为如果排除了 title 参数,那么 YOURLS 会对提供的 URL 进行额外的 HTTP 调用,以从该 URL 获取标题。

祝你有美好的一天。

【讨论】:

  • 啊我知道了,我会试试这个,然后回复你,非常感谢! :)
  • 成功了.. 非常感谢!我已经接受了你的回答..:)
猜你喜欢
  • 2022-01-10
  • 2011-06-24
  • 1970-01-01
  • 2017-03-11
  • 2016-12-25
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 2016-05-17
相关资源
最近更新 更多