1

YOURLS API をインストールしましたが、1 つの問題を除いて正常に動作しています。短縮するために渡す URL が何であれ、その URL を最初に実行します。リンクの 1 つは購読解除リンクをクリックすることで、すぐにメーラーからメンバーの購読を解除します。セキュリティ トークンを使用したパスワードなしの API 呼び出しを使用しており、関数ごとにyourls-api.phpファイルを呼び出していますfile_get_contents。これが私が書いたコードスニペットです:

$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);   

短縮する前に URL を実行しないように YOURLS API を停止する方法を教えてください。

4

1 に答える 1

4

今週末は少し忙しくて遅くなってすみません。

今朝、前述の問題に直面している理由がわかりました。

あなたのコードで:

$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);

次のパラメータを渡しています: signature、action、url、および format ですが、YOURLS API はこれらのパラメータを十分にカウントしていないため、渡すにはもう 1 つのパラメータ、つまり 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 からタイトルを取得するためです。

良い一日を過ごしてください。

于 2014-06-02T06:43:02.910 に答える