0

私はRedditのAPIを使用して、特定のURLの投票数を取得しています(http://www.reddit.com/api/info.json?url= $ urlのようにしています)。常にエラー500メッセージが表示されます。以下に私のコードの抜粋を示します。誰でも私を助けることができますか?

$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,15);     
curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 
$content = curl_exec($ch);
echo $content;
curl_close($ch);

エコーはいつも私に次の行を返しています。

<html><body><h1>500 Server Error</h1>An internal server error occured.</body></html>

読んでくれてありがとう。

---編集済み---

ローカルで動作しています。

4

1 に答える 1

0

$ useragent = "Mozilla / 5.0(Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1)Gecko / 20061204 Firefox / 2.0.0.1";

redditのAPIルールは、ユーザーエージェントについて次のように述べています。

  • クライアントのUser-Agent文字列を、できればredditユーザー名を参照して、一意でわかりやすいものに変更します。
    • 例:ユーザーエージェント:/ u/spladugによるsuperhappyflair bot v1.0
    • 多くのデフォルトのユーザーエージェント(「Python / urllib」や「Java」など)は、一意で説明的なユーザーエージェント文字列を奨励するように大幅に制限されています。
    • 他の人が使用できるようにアプリケーションを作成する場合は、ユーザーエージェントにバージョン番号を含めてください。これにより、アプリのすべてのバージョンをブロックすることなく、バグのあるバージョンをブロックできます。
    • ユーザーエージェントについて嘘をつかないでください。これには、人気のあるブラウザのなりすましや他のボットのなりすましが含まれます。極端な偏見を持った嘘つきを禁止します。

これは500エラーの説明にはなりませんが、ブラウザを使用するときに同じURLが問題なく機能する場合は、ここから始めます。ブラウザを使用しているときに500エラーが発生する場合は、infoAPIを正しく使用していない可能性があります(その結果、バグが見つかりました)。

于 2013-01-14T16:54:20.633 に答える